Назад к вопросам
Senior
2
Какие практики для уменьшения размера Docker-образа существуют?
Компании, где спрашивали
Flant
Ответ от нейросети
sobes.tech AI
Для уменьшения размера Docker-образа применяют несколько практик:
- Использование минималистичных базовых образов, например,
alpineвместоubuntu. - Многоступенчатая сборка (multi-stage builds), когда в первых этапах собирается приложение, а в финальном образе остаётся только минимальный runtime с собранным бинарником.
- Очистка кешей и временных файлов после установки зависимостей внутри Dockerfile.
- Объединение команд RUN для уменьшения количества слоёв.
- Использование
.dockerignoreдля исключения ненужных файлов из контекста сборки.
Пример многоступенчатого Dockerfile для Go:
# Stage 1: Build
FROM golang:1.20-alpine AS builder
WORKDIR /app
COPY . .
RUN go build -o myapp
# Stage 2: Minimal runtime
FROM alpine:latest
WORKDIR /app
COPY --from=builder /app/myapp .
CMD ["./myapp"]
Такой подход позволяет получить компактный образ с минимальным набором файлов.