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