Middle+
Mi az a multi-stage build a Dockerben? Mire jó?
sobes.tech MI
Válasz az MI-től
A Docker több szakaszos buildje lehetővé teszi több építési szakasz használatát egy Dockerfile-ban. Ez segít kompakt és optimalizált képek létrehozásában, elválasztva az alkalmazás építési és végrehajtási szakaszait.
Például az első szakaszban az alkalmazást a szükséges eszközökkel és függőségekkel lehet összerakni, a másodikban pedig csak a fordított artefaktokat másolhatjuk egy minimális képbe, felesleges fájlok és építőeszközök nélkül.
Előnyök:
- A végső kép méretének csökkentése
- Biztonság növelése (kevesebb komponens a végső konténerben)
- Tiszta és könnyű Dockerfile kezelés
Példa:
# Építési szakasz
FROM golang:1.20 AS builder
WORKDIR /app
COPY . .
RUN go build -o myapp
# Végső kép
FROM alpine:latest
COPY --from=builder /app/myapp /usr/local/bin/myapp
CMD ["myapp"]