Java Spring Boot 应用程序的 Docker 基础镜像 ( FROM ) 是什么?
我刚开始使用 docker,我看到了 FROM 内Dockerfile 可以像Java一样定义图像
FROM java:8
如果我使用 Gradle(或 Maven)构建是更好的基础镜像,可以避免以后配置 Gradle/Maven 项目的常见内容?
当然,Spring Boot 应用程序只是构建输出文件夹中的 .jar 文件,关于如何使用 Docker 运行的问题应该更少(对于使用标准构建工具构建的 Java 项目)
Best Answer-推荐答案
关于如何将 Spring-Boot 与 Docker 集成,有一个很好的文档:https://spring.io/guides/gs/spring-boot-docker/
基本上你在 src/main/docker/Dockerfile 中定义你的 dockerfile并像这样配置 docker-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-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 的小尺寸镜像。
您还应该能够使用标准的 Java 8 镜像(它基于 Debian,可能会增加占用空间)。可以在此处找到可用 Java Baseimages 的广泛列表:https://github.com/docker-library/docs/tree/master/openjdk .
关于java - 什么 Docker 基础镜像 (`FROM` )用于 Java Spring Boot?,我们在Stack Overflow上找到一个类似的问题:
https://stackoverflow.com/questions/41804297/
|