把聚合工程构建为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  查看镜像

 

 

 

posted @ 2021-05-09 08:28  爱吃猫的鱼儿  阅读(166)  评论(0)    收藏  举报