Junior — Middle
Jak implementovat vícestupňovou sestavu obrazu kontejneru?
sobes.tech AI
Odpověď od AI
Vícefázová sestava (multi-stage build) v Dockeru umožňuje vytvářet více fází sestavení v jednom Dockerfile, což pomáhá zmenšit velikost výsledného obrazu a oddělit fáze kompilace od fáze spuštění.
Hlavní myšlenkou je použití několika instrukcí FROM v jednom Dockerfile, přičemž každá fáze může využívat artefakty předchozích fází.
Příklad:
# Fáze sestavení
FROM golang:1.20 AS builder
WORKDIR /app
COPY . .
RUN go build -o myapp
# Fáze finálního obrazu
FROM alpine:latest
WORKDIR /app
COPY --from=builder /app/myapp .
CMD ["./myapp"]
Zde se nejprve sestaví aplikace v Go, a poté se v konečném obraze kopíruje pouze zkompilovaný binár, bez zdrojových souborů a nástrojů pro sestavení.