把聚合工程构建为docker镜像
1、在父工程的pom文件中统一指定jdk版本,还有springboot的版本,本例子使用jdk11,jdk8也是可以的

2、子项目(module)添加依赖:
注意 spotify 的版本要与jdk版本对应,否则构建时会报错!!!
<properties>
<!--docker镜像仓库的前缀-->
<docker.image.prefix>kimhank</docker.image.prefix>
</properties>
<build>
<!--jar包的名称-->
<finalName>order-service</finalName>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
<configuration>
<fork>true</fork>
<addResources>true</addResources>
</configuration>
</plugin>
<!--构建docker镜像的插件-->
<plugin>
<!--Spotify 的 docker-maven-plugin 插件是⽤于构建docker镜像的-->
<groupId>com.spotify</groupId>
<artifactId>dockerfile-maven-plugin</artifactId>
<version>1.4.10</version>
<configuration>
<!--docker仓库-->
<repository>${docker.image.prefix}/${project.artifactId}-16</repository>
<buildArgs>
<!--jar包位置-->
<JAR_FILE>target/${project.build.finalName}.jar</JAR_FILE>
</buildArgs>
</configuration>
</plugin>
</plugins>
</build>
3、在各个module根目录下创建Dockerfile(使用jdk11构建,并且限制运行jar包的内存)
FROM adoptopenjdk/openjdk11:ubi VOLUME /tmp ARG JAR_FILE COPY ${JAR_FILE} app.jar ENTRYPOINT ["java","-jar","/app.jar","-Xms128M","-Xmx128M"]
4、把整个项目上传到阿里云(可选,如果本地是linux或者Mac,则忽略)
5、把linux的jdk切换为上面第1步指定的jdk版本
vim /etc/profile
编辑环境变量。。。
source /etc/profile
6、在父项目根目录下执行
mvn clean && mvn install
7、在各个module的根目录下执行命令(把这些module构建成镜像):
mvn install -Dmaven.test.skip=true dockerfile:build
大功告成了,执行 docker images 查看镜像

我就是我,是不一样的烟火

浙公网安备 33010602011771号