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

Каким образом реализовать многоступенчатую сборку образа контейнера?

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

sobes.tech AI

Многоступенчатая сборка (multi-stage build) в Docker позволяет создавать несколько этапов сборки в одном Dockerfile, что помогает уменьшить размер итогового образа и отделить этапы компиляции от этапа запуска.

Основная идея — использовать несколько инструкций FROM в одном Dockerfile, где каждый следующий этап может использовать артефакты предыдущих.

Пример:

# Этап сборки
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"]

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