Junior — Middle
Πώς εργαστήκατε με την πολυεπίπεδη κατασκευή κοντέινερς στο Dockerfile;
sobes.tech AI
Απάντηση από 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"]
Такой подход позволяет не включать в финальный образ исходники и инструменты сборки, что уменьшает размер и повышает безопасность образа.