maven构建项目并提交镜像到dockerhub
2022-05-26 本文已影响0人
王滕辉
- 首先在maven的settings.xml 文件中找到servers添加一个server
这里的用户名密码对应的你的用户名密码,id谁便写 没有本地的私服可以用DockerHub的
<server>
<id>docker-hub</id>
<username>user</username>
<password>pass</password>
<configuration>
<email>514840279@qq.com</email>
</configuration>
</server>
-
接着创建项目修改pom
-
然后在properties 中填写
docker.host 为你服务器上的docker环境机器的docker服务地址,
docker.repository 是你私服的地址,dockerhub的不用 -
plugins中添加 docker-maven-plugin
pom.xml
<properties>
...
<docker.host>http://192.168.0.103:2375</docker.host>
<docker.repository>192.168.0.103:5000</docker.repository>
</properties>
...
...
<build>
<finalName>${project.name}</finalName>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<excludes>
<exclude>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</exclude>
</excludes>
</configuration>
</plugin>
<!-- 添加docker-maven插件 -->
<plugin>
<groupId>com.spotify</groupId>
<artifactId>docker-maven-plugin</artifactId>
<executions>
<execution>
<id>default</id>
<phase>package</phase> <!--绑定mvn的哪个命令-->
<goals>
<goal>build</goal> <!--要执行的命令 -->
<goal>push</goal>
</goals>
</execution>
</executions>
<configuration>
<!-- docker.host就是docker服务的地址 是你的docker环境的地址文件会在这里进行构建镜像 -->
<dockerHost>${docker.host}</dockerHost>
<!-- 这个id是maven中对应的serverid -->
<serverId>docker-hub</serverId>
<!-- docker.repository就是私服的地址 ${docker.repository}/ 如果你上传到dockerHub是不需要写 ${docker.repository}/ -->
<imageName>${docker.repository}/514840279/${project.artifactId}:1.0</imageName>
<dockerDirectory>${project.basedir}/src/main/docker</dockerDirectory>
<resources>
<resource>
<targetPath>/</targetPath>
<directory>${project.build.directory}</directory>
<include>${project.build.finalName}.jar</include>
</resource>
</resources>
<forceTags>true</forceTags>
</configuration>
</plugin>
</plugins>
</build>
最后执行下 mvn install 就可以打包jar 并打包docker 的镜像然后发布到镜像的中心