Что пишется в Dockerfile? Что такое многоэтапная сборка?
Ответ от нейросети
sobes.tech AI
В Dockerfile описывается последовательность инструкций для сборки Docker-образа. Обычно там указывают базовый образ (FROM), копируют файлы (COPY), устанавливают зависимости (RUN), задают переменные окружения (ENV), открывают порты (EXPOSE), указывают команду запуска контейнера (CMD или ENTRYPOINT).
Многоэтапная сборка (multi-stage build) — это подход, когда в одном 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"]
Здесь сначала собирается бинарник в образе с Go, затем копируется только готовый исполняемый файл в минимальный образ Alpine.