使用idea打包推送docker镜像
本文针对maven项目
配置docker
修改配置文件
1 2 3 4 5
| vim /usr/lib/systemd/system/docker.service
在ExecStart=/usr/bin/dockerd-current 后面加上
-H tcp://0.0.0.0:2375 -H unix://var/run/docker.sock
|
1 2 3 4
| # 重载配置文件 systemctl daemon-reload # 启动docker systemctl start docker
|
配置项目
pom文件修改
首先在项目的pom.xml
文件中引入依赖
1 2 3 4 5 6 7
| <dependency> <groupId>io.fabric8</groupId> <artifactId>docker-maven-plugin</artifactId> <version>0.33.0</version> </dependency>
|
然后修改pom
文件中的打包插件,新增下面的内容
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
| <plugin> <groupId>io.fabric8</groupId> <artifactId>docker-maven-plugin</artifactId> <version>0.33.0</version>
<configuration> <dockerHost>tcp://127.0.0.1:2375</dockerHost> <registry>registry.thunisoft.com:5000</registry> <authConfig> <push> <username>admin</username> <password>123456</password> </push> </authConfig>
<images> <image> <name>${docker.image.prefix}/${project.artifactId}:${project.version}</name> <alias>${project.name}</alias> <build> <dockerFile>${project.basedir}/Dockerfile</dockerFile> </build> <run> <namingStrategy>alias</namingStrategy> </run> </image> </images> </configuration> </plugin>
|
其中,需要修改的有:
- dockerHost:修改为docker所在服务器的ip
- registry:推送镜像的地址
- authConfig:私有镜像需要设置的账号密码
- images:镜像信息
- project.basedir:当前项目路径
- project.name:当前项目的名称
- name: 推送的镜像的名称,这里我使用的是变量
- dockerFile:Dockerfile文件地址
编写Dockerfile
按照项目编写即可
有个需要注意的是,一般java项目打包成镜像,我们都会执行一个COPY
命令,将jar
包拷贝到镜像中,例如:
1
| COPY ["./project.jar","/xx/java.jar"]
|
这里的project.jar
必须是当前idea所在项目的机器上能找到的。例如:
1
| COPY ["./target/adc.jar","/home/ROOT.jar"]
|
这里的源路径取的是target
目录下的
执行
依次执行 package
、docker:build
、docker:push
即可
