用于Java Spring Boot的Docker基础映像(`FROM`)?

Java的Spring Boot应用程序有哪些Docker基础映像( FROM )?

我刚刚开始与docker,我看到, FROM里面的Dockerfile可以定义像Java的图像

 FROM java:8 

如果我正在使用Gradle(或Maven)进行构build,那么开始避免configurationGradle / Maven项目常见的是更好的基础形象?

当然,Spring Boot应用程序只是构build输出文件夹中的.jar文件,关于如何使用Docker运行(对于使用标准构build工具构build的Java项目)

有关于如何集成Spring-Boot和Docker的很好的文档: https : //spring.io/guides/gs/spring-boot-docker/

基本上你可以在src/main/docker/Dockerfile docker src/main/docker/Dockerfile Dockerfile中定义你的dockerfile,并像这样configurationsrc/main/docker/Dockerfile -maven-plugin:

 <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是基于Alpine Linux的小脚印图像。

你也应该能够使用标准的Java 8镜像(这是基于Debian的,可能会增加占用的空间)。 可以在这里find大量可用的Java Baseimages列表: https ://hub.docker.com/_/java/。

我正在使用使用基础泊坞窗图像fabric8 / java-alpine-openjdk8-jdk:1.2的fabric插件。 不需要Dockerfile,它是由插件创build的。

 <build> <finalName>${project.artifactId}-${project.version}</finalName> <plugins> <plugin> <artifactId>maven-compiler-plugin</artifactId> <version>3.3</version> <configuration> <source>1.8</source> <target>1.8</target> </configuration> </plugin> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> <plugin> <groupId>io.fabric8</groupId> <artifactId>fabric8-maven-plugin</artifactId> <version>3.2.28</version> </plugin> </plugins> </build>