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"]