有一個很好的文件上如何彈簧引導與碼頭工人集成:https://spring.io/guides/gs/spring-boot-docker/
基本上你在src/main/docker/Dockerfile
定義dockerfile和配置泊塢窗 - Maven的插件是這樣的:
<build>
<plugins>
<plugin>
<groupId>com.spotify</groupId>
<artifactId>docker-maven-plugin</artifactId>
<version>0.4.11</version>
<configuration>
<imageName>${docker.image.prefix}/${project.artifactId}</imageName>
<dockerDirectory>src/main/docker</dockerDirectory>
<resources>
<resource>
<targetPath>/</targetPath>
<directory>${project.build.directory}</directory>
<include>${project.build.finalName}.jar</include>
</resource>
</resources>
</configuration>
</plugin>
</plugins>
Dockerfile:
FROM frolvlad/alpine-oraclejdk8:slim
VOLUME /tmp
ADD gs-spring-boot-docker-0.1.0.jar app.jar
RUN sh -c 'touch /app.jar'
ENV JAVA_OPTS=""
ENTRYPOINT [ "sh", "-c", "java $JAVA_OPTS -Djava.security.egd=file:/dev/./urandom -jar /app.jar" ]
注意,在這個例子中是FROM frolvlad/alpine-oraclejdk8:slim
其基於Linux的高山小footprinted圖像。
您還應該能夠使用標準的Java 8映像(基於Debian並且可能會增加佔用空間)。可以在這裏找到大量可用的Java Baseimages列表:https://hub.docker.com/_/java/。
Gradle或Maven是無關緊要的,正如你在最後一段中寫到的,Spring Boot應用程序只是一個.jar,它是如何生成的並不重要。這就是使用默認Java Docker構建映像的原因。 –