Sobes.tech
Middle+

Wat is multi-stage build in Docker? Waarvoor is het nodig?

sobes.tech AI

Antwoord van AI

Multi-stage build in Docker stelt je in staat om meerdere bouwfasen te gebruiken in één Dockerfile. Dit helpt bij het maken van compacte en geoptimaliseerde images, door de bouw- en uiteindelijke uitvoeringsfasen van de applicatie te scheiden.

Bijvoorbeeld, in de eerste fase kan je de applicatie bouwen met de benodigde tools en afhankelijkheden, en in de tweede fase alleen de gecompileerde artefacten kopiëren naar een minimale image zonder onnodige bestanden en bouwtools.

Voordelen:

  • Vermindering van de grootte van de uiteindelijke image
  • Verbeterde beveiliging (minder componenten in de uiteindelijke container)
  • Netheid en gemak van beheer van Dockerfile

Voorbeeld:

# Bouwfase
FROM golang:1.20 AS builder
WORKDIR /app
COPY . .
RUN go build -o myapp

# Finale image
FROM alpine:latest
COPY --from=builder /app/myapp /usr/local/bin/myapp
CMD ["myapp"]