Sobes.tech
Back to questions
Middle
4

Что пишется в Dockerfile? Что такое многоэтапная сборка?

Companies where asked
СБЕРСБЕР

Answer from AI

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.