Docker多阶段构建未在所有阶段运行

时间:2020-05-07 01:24:06

标签: spring-boot docker

我正在尝试从此Dockerfile构建映像:

FROM openjdk:14-slim-buster AS builder
WORKDIR application
ARG JAR_FILE=target/*.jar
COPY ${JAR_FILE} application.jar
RUN java -Djarmode=layertools -jar application.jar extract

FROM openjdk:14-slim-buster
WORKDIR application
COPY --from=builder application/dependencies/ ./
COPY --from=builder application/snapshot-dependencies/ ./
COPY --from=builder application/resources/ ./
COPY --from=builder application/application/ ./
ENTRYPOINT ["java", "org.springframework.boot.loader.JarLauncher"]

问题在于它永远不会进入第二阶段。构建映像时,我可以在计数器中看到所有步骤,但是它只是停止并作为运行实际应用程序的新容器执行

RUN java -Djarmode=layertools -jar application.jar extract

2 个答案:

答案 0 :(得分:0)

我认为这是因为Jar文件的格式不受支持。 这就是为什么jarmode无法处理它的原因。 Jarmode是用于提取分层Jar的特殊系统。

您可以签出:https://spring.io/blog/2020/01/27/creating-docker-images-with-spring-boot-2-3-0-m1以获得详细信息。

答案 1 :(得分:0)

要回答我自己的问题,这是因为Spring Boot版本尚未准备好处理多阶段构建而引起的,但是在将该服务升级到2.3.x之后,我可以构建了。