Sobes.tech
Junior — Middle

Kuidas rakendada konteinerpildi mitmeastmelist ehitust?

sobes.tech AI

Vastus AI-lt

Mitmeastmeline ehitus (multi-stage build) Dockeris võimaldab luua ühe Dockerfile sees mitu ehitusetappi, mis aitab vähendada lõpliku pildi suurust ja eraldada koostamise etapid käivitamise etapist.

Põhiteooria on kasutada mitmeid FROM käske ühes Dockerfile, kus iga etapp saab kasutada eelnevate etappide artefakte.

Näide:

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

# Lõpppildi etapp
FROM alpine:latest
WORKDIR /app
COPY --from=builder /app/myapp .
CMD ["./myapp"]

Siin ehitatakse esmalt Go rakendus, ja seejärel kopeeritakse lõpppildile ainult kompileeritud binaar, ilma lähtekoodide ja ehitustööriistadeta.