Sobes.tech
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, alpine vietoje ubuntu.
  • 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.