Sobes.tech
Senior

Millised praktikad on olemas Docker-pildi suuruse vähendamiseks?

sobes.tech AI

Vastus AI-lt

Selleks, et Docker-pildi suurust vähendada, rakendatakse mitmeid praktikaid:

  • Minimalistlike baasipiltide kasutamine, näiteks alpine asemel ubuntu.
  • Mitmeastmeline ehitus (multi-stage builds), kus esimestes etappides ehitatakse rakendus ning lõpppildil jääb alles ainult minimaalne jookskkeskkond koos kompileeritud binaariga.
  • Cache'ide ja ajutiste failide puhastamine pärast sõltuvuste installimist Dockerfile'is.
  • RUN käskude ühendamine, et vähendada kihte.
  • Kasutades .dockerignore, et välistada ebavajalikud failid ehituse kontekstist.

Näide mitmeastmelisest Dockerfile'ist Go jaoks:

# Etapp 1: Ehitus
FROM golang:1.20-alpine AS builder
WORKDIR /app
COPY . .
RUN go build -o myapp

# Etapp 2: Minimaalne jookskkeskkond
FROM alpine:latest
WORKDIR /app
COPY --from=builder /app/myapp .
CMD ["./myapp"]

See lähenemine võimaldab saada kompaktse pildi minimaalse failide kogumiga.