Junior — Middle
Dockerfile'da çok aşamalı konteyner oluşturma ile nasıl çalıştınız?
sobes.tech yapay zeka
AI'dan gelen yanıt
Многоэтапная сборка (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"]
Такой подход позволяет не включать в финальный образ исходники и инструменты сборки, что уменьшает размер и повышает безопасность образа.