FROMJava Spring Boot应用程序的哪个Docker基本映像()?
FROM
我只是从docker开始,我看到FROM里面Dockerfile可以为Java定义映像,例如
Dockerfile
FROM java:8
如果我使用Gradle(或Maven)进行构建,则可以更好地开始使用基础映像,以避免以后再配置Gradle / Maven项目的常见问题?
当然,Spring Boot应用程序只是构建输出文件夹中的.jar文件,关于如何使用Docker运行的问题应该更少(对于使用标准构建工具构建的Java项目)
有一个很好的文档介绍了如何将Spring-Boot与Docker集成:https : //spring.io/guides/gs/spring-boot- docker/
基本上,您可以在dockerfile中定义src/main/docker/Dockerfile并配置docker -maven-plugin,如下所示:
src/main/docker/Dockerfile
<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-oraclejre8: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-oraclejre8:slim中,是基于Alpine Linux的小型映像。
FROM frolvlad/alpine-oraclejre8:slim
您还应该能够使用标准的Java 8映像(该映像基于Debian并可能会增加占用空间)。可在此处找到可用的Java Baseimage的广泛列表:https : //github.com/docker- library/docs/tree/master/openjdk。