Ребята из Spring АйО (@spring_aio) недавно рассказывали, как должен выглядеть идеальный Dockerfile:
FROM bellsoft/liberica-openjdk-alpine:21 AS builder
WORKDIR /application
COPY . .
RUN --mount=type=cache,target=/root/.gradle chmod +x gradlew && ./gradlew clean build -x test
FROM bellsoft/liberica-openjre-alpine:21 AS layers
WORKDIR /application
COPY --from=builder /application/build/libs/*.jar app.jar
RUN java -Djarmode=layertools -jar app.jar extract
FROM bellsoft/liberica-openjre-alpine:21
VOLUME /tmp
RUN adduser -S spring-user
USER spring-user
COPY --from=layers /application/dependencies/ ./
COPY --from=layers /application/spring-boot-loader/ ./
COPY --from=layers /application/snapshot-dependencies/ ./
COPY --from=layers /application/application/ ./
ENTRYPOINT ["java", "org.springframework.boot.loader.launch.JarLauncher"]
Именно такой Dockerfile и генерирует Amplicode!
Подробнее про приемущества такого Dockerfile рассказали в новом видео!
Смотреть на YouTube: https://youtu.be/f_eyfLVgoq8 (4 минуты)
Подписывайтесь:
😌@amplicode
😉@amplicode