Sobes.tech
Middle+

Čo je to multi-stage build v Docker? Na čo je to potrebné?

sobes.tech AI

Odpoveď od AI

Viacstupňová stavba v Docker umožňuje používať viacero fáz zostavenia v jednom Dockerfile. To pomáha vytvárať kompaktné a optimalizované obrazy tým, že oddelí fázy zostavenia a finálneho spustenia aplikácie.

Napríklad v prvej fáze môžete zostaviť aplikáciu s potrebnými nástrojmi a závislosťami, a v druhej iba skopírovať skompilované artefakty do minimálneho obrazu bez zbytočných súborov a nástrojov na zostavenie.

Výhody:

  • Zníženie veľkosti konečného obrazu
  • Zvýšenie bezpečnosti (menej komponentov v konečnom kontejnery)
  • Čistota a jednoduchosť správy Dockerfile

Príklad:

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

# Konečný obraz
FROM alpine:latest
COPY --from=builder /app/myapp /usr/local/bin/myapp
CMD ["myapp"]