Senior
Kokios praktikos egzistuoja, kad sumažintumėte Docker vaizdo dydį?
sobes.tech AI
Atsakymas iš AI
Siekiant sumažinti Docker vaizdo dydį, taikomos kelios praktikos:
- Minimalistinių pagrindinių vaizdų naudojimas, pavyzdžiui,
alpinevietojeubuntu. - Daugiapakopis kūrimas (multi-stage builds), kai pirmuosiuose etapuose kuriama programa, o galutiniame vaizde lieka tik minimalus vykdymo aplinka su sukompiliuotu binaru.
- Caching ir laikini failai išvalomi po priklausomybių įdiegimo Dockerfile.
- RUN komandų sujungimas, siekiant sumažinti sluoksnių skaičių.
- Naudojant
.dockerignore, kad išskirtumėte nereikalingus failus iš kūrimo konteksto.
Pavyzdys kelių etapų Dockerfile, skirtas Go:
# 1 etapas: Kūrimas
FROM golang:1.20-alpine AS builder
WORKDIR /app
COPY . .
RUN go build -o myapp
# 2 etapas: Minimalus vykdymo laikas
FROM alpine:latest
WORKDIR /app
COPY --from=builder /app/myapp .
CMD ["./myapp"]
Šis požiūris leidžia gauti kompaktišką vaizdą su minimaliu failų rinkiniu.