哪个Docker base image (FROM) for Java Spring Boot应用程序?
我刚刚开始使用docker,我发现Dockerfile中的FROM可以像这样定义图像
FROM java:8如果我使用Gradle (或Maven)构建,是不是更好的基础映像,可以避免以后的配置? Gradle/Maven项目有什么共同之处?
当然,Spring Boot应用程序只是构建输出文件夹中的.jar文件,应该没有关于如何使用Docker运行的问题(对于使用标准构建工具构建的Java项目)
发布于 2017-01-23 18:45:45
有一个关于如何将Spring-Boot与Docker集成的很好的文档:https://spring.io/guides/gs/spring-boot-docker/
基本上,您可以在src/main/docker/Dockerfile中定义docker文件,并像这样配置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的小型打印图像。
您还应该能够使用标准的Java8映像(它基于Debian,可能会增加内存使用量)。可以在这里找到可用Java的广泛列表:https://github.com/docker-library/docs/tree/master/openjdk。
发布于 2017-02-22 21:35:49
我使用了fabric插件,它使用了基本的docker image fabric 8/java-alpine openjdk8-jdk:1.2。不需要Dockerfile文件,它是由plugin创建的。
<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>目标是fabric8 8:build来创建docker镜像,fabric8 8: push来推送docker镜像注册表。
mvn clean install fabric8:build fabric8:pushhttps://stackoverflow.com/questions/41804297
复制相似问题