Sobes.tech
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 alpine místo ubuntu.
  • 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í .dockerignore k 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ů.