Senior
Jaké praktiky existují pro snížení velikosti Docker obrazu?
sobes.tech AI
Odpověď od AI
Pro snížení velikosti Docker obrazu se používá několik praktik:
- Použití minimalistických základních obrazů, například
alpinemístoubuntu. - Vícefázová stavba (multi-stage builds), kdy se v prvních fázích sestaví aplikace a ve finálním obrazu zůstává pouze minimální runtime s sestaveným binárním souborem.
- Čištění cache a dočasných souborů po instalaci závislostí v Dockerfile.
- Sloučení příkazů RUN ke snížení počtu vrstev.
- Použití
.dockerignorek vyloučení nepotřebných souborů z kontextu sestavení.
Příklad vícefázového Dockerfile pro Go:
# Fáze 1: Sestavení
FROM golang:1.20-alpine AS builder
WORKDIR /app
COPY . .
RUN go build -o myapp
# Fáze 2: Minimální runtime
FROM alpine:latest
WORKDIR /app
COPY --from=builder /app/myapp .
CMD ["./myapp"]
Tento přístup umožňuje získat kompaktní obraz s minimálním množstvím souborů.