Senior
Koje prakse postoje za smanjenje veličine Docker slike?
sobes.tech АИ
Одговор од АИ
Для уменьшения размера 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"]
Такой подход позволяет получить компактный образ с минимальным набором файлов.