我正在尝试从此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
答案 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之后,我可以构建了。