如何使用一个Dockerfile对Spring Boot应用程序进行Docker化?

时间:2018-07-26 10:18:52

标签: docker spring-boot

official guide,我们可以通过maven或gradle构建docker映像。它说我们需要一个Dockerfile,然后运行maven或gradle命令以生成可运行的Docker映像:

FROM openjdk:8-jdk-alpine
VOLUME /tmp
ARG JAR_FILE
COPY ${JAR_FILE} app.jar
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]

但是在我的用例中,云供应商要求我们仅提供一个Dockerfile,他们将根据提供的Dockerfile从我的代码库构建Docker映像。而且没有机会运行自己的构建脚本。那么我该如何处理呢?有没有办法仅从Dockerfile构建可运行的Docker映像?

1 个答案:

答案 0 :(得分:0)

在Dockerfile中使用RUN命令在构建时执行任何操作。 例如:

FROM openjdk:8-jdk-alpine
VOLUME /tmp
ARG JAR_FILE
COPY ${JAR_FILE} app.jar
RUN echo "something" && \
  echo "then print this" && \
  echo "and so on.. any shell command can be performed here"
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]

避免使用多个RUN命令。为每个图层创建一个新的覆盖层,这会增加最终图像的大小。

很高兴知道如何创建图像以供理解。 当您执行docker build .时,您的Docker客户端会将Dockerfile目录中的所有内容复制到Docker主机。然后docker根据FROM指令创建一个容器,并简单地遵循Dockerfile中的指令修改该容器。完成说明后,泊坞窗根据该临时容器的状态创建一个映像,并丢弃该容器。