0
我有一個java/hibernate/jpa/maven項目,我試圖轉換,以便它(從項目創建的.jar文件)是Docker鏡像。我也使用Spotify插件。將生成的jar文件的名字從Maven pom.xml傳遞到Dockerfile
下面,對於以下多克爾命令
ADD <full_path_of_generated_file>.jar app.jar
full_path_of_generated_file從pom.xml文件生成的值(在Maven的側)。爲了讓Docker正確生成映像,需要此信息。
如何獲取生成的文件的名稱到Dockerfile?
TIA
Maven的外掛區pom.xml文件
<plugins>
<plugin>
<groupId>com.spotify</groupId>
<artifactId>docker-maven-plugin</artifactId>
<configuration>
<imageName>apx/${project.artifactId}</imageName>
<dockerDirectory>${project.basedir}/docker</dockerDirectory>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<!-- <version>2.6</version> -->
<executions>
<execution>
<id>analyze</id>
<phase>package</phase>
<configuration>
<failBuild>true</failBuild>
<ignoreDirect>false</ignoreDirect>
</configuration>
</execution>
</executions>
<configuration>
<finalName>${project.artifactId}</finalName>
<archive>
<manifest>
<mainClass>ccinfw.MainApplication</mainClass>
</manifest>
</archive>
</configuration>
</plugin>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
[... snip ...]
<artifactId>ccinf</artifactId>
下面是正在使用的Dockerfile副本
FROM java:8
VOLUME /tmp
ADD <full_path_of_generated_file>.jar app.jar
RUN bash -c 'touch /app.jar'
EXPOSE 8080
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
裏面我假設你的POM的包裝可以是 「罐子」 或者你不給一個包裹標籤? – khmarbaise
我只集成了pom.xml文件的一部分(以保持簡短)。是的,正在創建一個.jar文件用於Docker鏡像。 –
我能想到的最簡單的事情是:' WhatEver.jar ...'並更改'ADD target/WhatEver.jar app.jar'? –
khmarbaise