Если ваш
Dockerfile тянет десятки зависимостей и билдится по 10 минут — есть способ ускорить и облегчить финальный образ. Используйте multi-stage build.📦 Пример:
# Stage 1: сборка приложения
FROM golang:1.20 AS builder
WORKDIR /app
COPY . .
RUN go build -o main .
# Stage 2: финальный минимальный образ
FROM alpine:latest
WORKDIR /app
COPY --from=builder /app/main .
ENTRYPOINT ["./main"]
💡 Что это даёт:
– из финального образа убираем весь
build-мусор – минимальный размер (тут —
alpine, всего ~5 MB) – меньше уязвимостей = безопаснее
– быстрее выкатывать и проще кэшировать
🔥 Best practice:
Разделяй окружение для сборки и запуска. Всё, что не нужно в проде — оставь в первом этапе.
👉 @devops_star