我正在尝试为具有多个模块的项目创建 docker 映像。需要以这样一种方式构建图像,即图像应该在给定的类路径中包含子模块 jar。我的项目结构是
parent_project
|
|
module-1
|
pom.xml
|
module-2
|
pom.xml
|
pom.xml
所以理想情况下,当构建发生时,图像应该有一个类路径,其中两个模块 jar 都存在。但是使用下面给出的 pom.xml,我看到构建时的图像被后一个构建覆盖。所以一个图像是用第一个模块 jar 构建的,第二个图像是用第二个模块 jar 形成的,因此最终图像只包含后面的 jar。
pom.xml 的一部分
<modules>
<module>xxxxxxxxx_m1</module>
<module>xxxxxxxxx_m2</module>
</modules>
<build>
<plugins>
<plugin>
<groupId>com.google.cloud.tools</groupId>
<artifactId>jib-maven-plugin</artifactId>
<version>1.8.0</version>
<configuration>
<from>
<image>xxxyyyy****_base_image</image>
</from>
<container>
<entrypoint>INHERIT</entrypoint>
<appRoot>/etc/plugin</appRoot>
<environment>
<CLASSPATH>
/etc/plugin/classpath/xxxxxxxxx_m1-SNAPSHOT.jar
/etc/plugin/classpath/xxxxxxxxx_m2-SNAPSHOT.jar
</CLASSPATH>
</environment>
</container>
<containerizingMode>packaged</containerizingMode>
</configuration>
</plugin>
</plugins>
</build>
我通过提供以下命令来构建图像:-
mvn package jib:build -Dimage=<base_image>:<tag_name>