io.fabric8.docker-maven-plugin插件使用

io.fabric8.docker-maven-plugin插件使用

一、说明

本文记录内容主要为了在开发和测试环境快速部署使用,详细内容参考一下原博主文章:
Docker 守护进程+远程连接+安全访问+启动冲突解决办法 (完整收藏版)
最强大的Docker插件 fabric8io/docker-maven-plugin

二、环境、软件情况

​ 总共有三台服务器,一台window系统,两台linux系统,三台服务器网络互通。

  • window系统:

    代码开发环境:jdk 8

    docker-maven-plugin:0.37.0

    Maven软件:版本 3.6.3

  • linux系统(192.X.X.132)

    docker软件:version 19.03.12

  • linux系统(140.X.X.158)

    私服Harbor:版本 v2.3.2

    域名:https://harbor.xxx.com

以上环境安装过程忽略,只要记录docker-maven-plugin配制与使用。

三、pom.xml文件

<plugin>
    <groupId>io.fabric8groupId>
    <artifactId>docker-maven-pluginartifactId>
    <version>0.37.0version>
    <configuration>
        
        <dockerHost>tcp://192.X.X.132:2375dockerHost>

        
        

        
        <authConfig>
            <username>${harbor.username}username>
            <password>${harbor.password}password>
        authConfig>
        
        <images>
            <image>
                
                <name>namespace/${project.build.finalName}:${v}name>
                
                <registry>harbor.xxx.comregistry>
                <build>
                    
                    <dockerFile>${project.basedir}/DockerfiledockerFile>
                build>
            image>
        images>
        <buildArgs>
            
            <JAR_FILE>target/${project.build.finalName}.jarJAR_FILE>
        buildArgs>
    configuration>
plugin>

说明:

  • ${project.build.finalName}:project.build.finalName为在build标签下自定义属性finalName
  • ${v}:v是在输入mvn命令时,动态传递的版本号参数
  • 此插件可能需要commons-codec依赖

四、192.X.X.132服务器配置

1.docker开通2375端口

  1. 打开docker.service配置文件

    vi /usr/lib/systemd/system/docker.service
    
  2. 修改配置文件

    #原配置
    #ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
    #新配置
    ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix://var/run/docker.sock
    
  3. 重新加载配置文件并重启服务

    systemctl daemon-reload
    systemctl restart docker
    
  4. 检查端口是否开启

    [root@root ~]# netstat -ntpl | grep 2375
    tcp6       0      0 :::2375                 :::*                    LISTEN      3444/dockerd 
    

2. maven push报错:x509: certificate signed by unknown authority

注意:以下方法不建议在不安全网络环境使用

因为私有仓库是https开头,所以需要证书,docker检测不到证书所以会报x509错误,修改方法为让docker信任私有仓库地址,配置方法有两种。

  • 修改docker.service配置文件

    在ExecStart属性增加参数:–insecure-registry https://harbor.xxx.com

    ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix://var/run/docker.sock \
              --insecure-registry https://harbor.xxx.com
    
  • 修改daemon.json配置文件

    新增参数:“insecure-registries” : [“192.168.59.100:5000”]

    {
      "insecure-registries" : ["harbor.xxx.com"]
    }
    

以上方式不能同时使用,否则会报错。修改后需要重启docker。如果采用修改docker.service配置文件方式,还需要重新加载配置文件

3.服务器修改hosts文件

  1. 打开hosts文件

    vi /etc/hosts
    
  2. 增加域名与ip映射

    140.X.X.158 harbor.xxx.com
    

五、常用命令

先进入项目根目录,然后执行一下命令

mvn clean package
mvn docker:bulid
mvn docker:push -Dmaven.test.skip=true -Dv=1 -f pom.xml

说明:-Dv=1参数,用于pom.xml文件中的${v}使用

你可能感兴趣的:(Maven,springboot,maven,spring,boot)