Назад к вопросам
Middle
67
questionbank
В каких случаях используется многоступенчатая сборка?
Sobes Copilot
Получайте ответы в реальном времени
Ответ от нейросети
sobes.tech AI
Многоступенчатая сборка используется для:
- Уменьшения размера финального образа: Промежуточные слои сборки, содержащие инструменты и зависимости, необходимые для сборки, но не для выполнения приложения, удаляются.
- Повышения безопасности: Финальный образ содержит только необходимые исполняемые файлы и зависимости, что минимизирует поверхность атаки.
- Ускорения сборки: Используются кэшированные слои из предыдущих шагов, что экономит время при повторной сборке.
- Разделения зависимостей: Промежуточные слои могут содержать независимые наборы инструментов и библиотек, не влияющие друг на друга.
Пример:
# Stage 1: Сборка приложения
FROM golang:1.20 as builder
WORKDIR /app
COPY go.mod go.sum ./
RUN go mod download
COPY . .
RUN CGO_ENABLED=0 go build -o /app/my-app
# Stage 2: Финальный образ
FROM alpine:latest
COPY --from=builder /app/my-app /app/my-app
ENTRYPOINT ["/app/my-app"]