Sobes.tech
Назад к вопросам
Junior — Middle
89

Как вы работали с многоэтапной сборкой контейнеров в Dockerfile?

Компании, где спрашивали
Cloud.ru
Nexign
AndersenAndersen
Смартекс

Ответ от нейросети

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"]

Такой подход позволяет не включать в финальный образ исходники и инструменты сборки, что уменьшает размер и повышает безопасность образа.