【发布时间】:2018-08-28 14:57:06
【问题描述】:
我有一个用 maven 配置的多模块项目。
/myProject
/module1
/target
pom.xml
/module2
/target
pom.xml
pom.xml
pom 父级正在构建子模块。
使用 com.spotify.dockerfile-maven-plugin 我想构建所有模块,构建一个 docker 镜像并复制该镜像中的所有 JAR。
pom 父母
<project>
<modelVersion>4.0.0</modelVersion>
<groupId>com.test</groupId>
<artifactId>myTest</artifactId>
<name>test</name>
<version>0.0.1</version>
<packaging>pom</packaging>
<modules>
<module>module1</module>
<module>module2</module>
</modules>
</project>
如果我将 Dockerfile 放在 /myProject 的根目录下,插件会抱怨没有模块 1 的 Dockerfile
FROM openjdk:8-jdk-alpine
ARG JAR_FILE
COPY ${JAR_FILE} /home/xyz/jars
maven 插件:
<plugin>
<groupId>com.spotify</groupId>
<artifactId>dockerfile-maven-plugin</artifactId>
<configuration>
<repository>mytest</repository>
<buildArgs>
<JAR_FILE>target/${project.artifactId}-${project.version}.jar</JAR_FILE>
</buildArgs>
</configuration>
</plugin>
如果我将 Dockerfile 放在该模块中,这适用于一个模块,但如何处理多个模块且只有 1 个 Dockerfile?
我可以在父 pom 上使用单个 mvn clean install 构建子模块,然后构建 docker 映像吗?
也许通过仅使用 pom 和 Dockerfile 创建子模块?
【问题讨论】: