Docker многоступенчатая сборка не запускает все этапы - PullRequest
0 голосов
/ 07 мая 2020

Я пытаюсь создать образ из этого 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 голосов
/ 08 августа 2020

Чтобы ответить на мой собственный вопрос, это произошло из-за версии Spring Boot, которая не была готова обрабатывать многоступенчатые сборки, но после обновления службы до 2.3.xi может построить.

0 голосов
/ 06 августа 2020

Я думаю, это из-за того, что файл Jar не поддерживается. Вот почему jarmode не может его обработать. Jarmode - это специальная система, используемая для извлечения многослойных файлов Jar.

Вы можете проверить: https://spring.io/blog/2020/01/27/creating-docker-images-with-spring-boot-2-3-0-m1 для получения подробной информации.

...