Sobes.tech
Back to questions
Junior — Middle
90

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

Companies where asked
Cloud.ru
Nexign
AndersenAndersen
Смартекс

Answer from AI

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

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