次のようなプロジェクト構造があります。
module-1
pom.xml
Dockerfile
module-2
pom.xml
module-3
pom.xml
module-4
pom.xml
Dockerfile
pom.xml
module-2
andはandmodule-3
の依存関係ですmodule-1
module-4
今、私は独立して展開module-4
したいと考えています。module-1
親の pom では、dockerfile-maven-plugin
追加<skip>
して true に追加しましたが、両方の子プロジェクトについてはskip
、デプロイしたいので false にしています。ただし、module-1
そのピッキング Dockerfileをデプロイしようとすると、 module-4
. では、各モジュールがそれぞれの Dockefile を選択するようにプロジェクトを構成するにはどうすればよいですか
親ポンセクションは次のようになります。
<plugin>
<groupId>com.spotify</groupId>
<artifactId>dockerfile-maven-plugin</artifactId>
<version>1.3.6</version>
<configuration>
<skip>true</skip>
</configuration>
</plugin>
両方の子の私の子 pom セクションは次のようになります。
<plugin>
<groupId>com.spotify</groupId>
<artifactId>dockerfile-maven-plugin</artifactId>
<version>1.3.6</version>
<dependencies>
<dependency>
<groupId>jakarta.activation</groupId>
<artifactId>jakarta.activation-api</artifactId>
<version>1.2.2</version>
</dependency>
</dependencies>
<configuration>
<skip>false</skip>
<repository>${docker.image.prefix}/${project.artifactId}</repository>
<tag>${project.version}</tag>
<useMavenSettingsForAuth>true</useMavenSettingsForAuth>
<buildArgs>
<JAR_FILE>target/${project.build.finalName}.jar</JAR_FILE>
</buildArgs>
<contextDirectory>${basedir}/</contextDirectory>
</configuration>
</plugin>
また、jenkinsビルドでコマンドを実行しています:mvn -pl module-1,module-2,module-3 -am clean install
module-1 の Dockerfile は次のようになります
FROM openjdk:11-jdk-alpine
VOLUME /tmp
ARG JAR_FILE
ADD ${JAR_FILE} module-1.jar
CMD java $JVM_OPTS -Djava.security.egd=file:/dev/./urandom -jar /module-1.jar
助けが必要