Назад к вопросам
Andersen
Junior — Middle
89
Как вы работали с многоэтапной сборкой контейнеров в Dockerfile?
Компании, где спрашивали
Cloud.ru
Nexign
Смартекс
Ответ от нейросети
sobes.tech AI
Многоэтапная сборка (multi-stage build) в Dockerfile позволяет создавать несколько промежуточных образов в одном Dockerfile, чтобы уменьшить итоговый размер конечного образа и отделить этапы сборки от этапа запуска.
Например, сначала в одном этапе собирается приложение с нужными инструментами и зависимостями, а затем во втором этапе копируются только необходимые артефакты в минимальный базовый образ.
Пример Dockerfile с многоэтапной сборкой для Go-приложения:
# Этап сборки
FROM golang:1.20 AS builder
WORKDIR /app
COPY . .
RUN go build -o myapp
# Этап запуска
FROM alpine:latest
WORKDIR /app
COPY --from=builder /app/myapp .
CMD ["./myapp"]
Такой подход позволяет не включать в финальный образ исходники и инструменты сборки, что уменьшает размер и повышает безопасность образа.