Back to questions
Andersen
Junior — Middle
83
Объясните концепцию многоступенчатой сборки Docker-образа и зачем она используется.
Companies where asked
Answer from AI
sobes.tech AI
Многоступенчатая сборка Docker-образа (multi-stage build) позволяет использовать несколько этапов сборки в одном Dockerfile. Это помогает создавать компактные и оптимизированные образы, отделяя этапы сборки от этапов выполнения.
На первом этапе можно использовать образ с инструментами для компиляции и сборки приложения, а на последующих — только минимальный образ с необходимыми для запуска файлами.
Преимущества:
- Значительно уменьшается размер итогового образа.
- Исключаются лишние зависимости и инструменты из финального образа.
- Упрощается поддержка и обновление Dockerfile.
Пример:
# Этап сборки
FROM openjdk:11-jdk AS build
WORKDIR /app
COPY . .
RUN ./gradlew build
# Этап выполнения
FROM openjdk:11-jre
WORKDIR /app
COPY --from=build /app/build/libs/myapp.jar ./
CMD ["java", "-jar", "myapp.jar"]