Sobes.tech
Middle+

Co je to multi-stage build v Dockeru? K čemu je potřeba?

sobes.tech AI

Odpověď od AI

Vícefázová stavba v Dockeru umožňuje používat více fází sestavení v jednom Dockerfile. To pomáhá vytvářet kompaktní a optimalizované obrazy tím, že odděluje fáze sestavení a finálního spuštění aplikace.

Například v první fázi lze sestavit aplikaci s potřebnými nástroji a závislostmi, a ve druhé pouze zkopírovat zkompilované artefakty do minimálního obrazu bez zbytečných souborů a nástrojů pro sestavení.

Výhody:

  • Zmenšení velikosti finálního obrazu
  • Zvýšení bezpečnosti (méně komponent v konečném kontejneru)
  • Čistota a snadnost správy Dockerfile

Příklad:

# Fáze sestavení
FROM golang:1.20 AS builder
WORKDIR /app
COPY . .
RUN go build -o myapp

# Finální obraz
FROM alpine:latest
COPY --from=builder /app/myapp /usr/local/bin/myapp
CMD ["myapp"]