Образ сервиса на Java весит 900 МБ и содержит Maven и исходники
FROM maven:3.9-eclipse-temurin-21
WORKDIR /app
COPY . .
RUN mvn -B package -DskipTests
CMD ["java", "-jar", "target/orders-service.jar"]
Образ весит 900 МБ, долго скачивается на узлы и содержит исходный код и кэш Maven. Как правильно?
- Многоэтапная сборка: собрать в образе с Maven, а в итоговый положить jar на JRE
- Удалить папку src командой RUN rm в конце того же Dockerfile
- Сжать итоговый образ архиватором перед публикацией
- Собирать jar прямо при старте контейнера, чтобы образ был пустым
