Sobes.tech
Senior

Ի՞նչ պրակտիկաներ կան Docker պատկերների չափը նվազեցնելու համար։

sobes.tech AI

Պատասխան AI-ից

Ինքնակամ Docker պատկերն իջեցնելու համար կիրառվում են մի շարք պրակտիկա:

  • Օգտագործել մինիմալիստական բազային պատկերներ, օրինակ՝ alpine փոխարեն ubuntu:
  • Բազմաֆազային կառուցում (multi-stage builds), երբ առաջին փուլում կառուցվում է ծրագիրը, իսկ վերջնական պատկերում մնում է միայն նվազագույն ռնտիմը և կոմպիլյացված բինարային ֆայլը:
  • Քաշերի և ժամանակավոր ֆայլերի մաքառում՝ dependencies տեղադրելուց հետո Dockerfile-ում:
  • RUN հրամանների միավորումը՝ շերտերի քանակը նվազեցնելու համար:
  • Օգտագործել .dockerignore՝ անպետք ֆայլերը բացառելու համար կառուցման կոնտեքստից:

Go-ի համար բազմաֆազ Dockerfile-ի օրինակ:

# Առաջին փուլ՝ Կառուցում
FROM golang:1.20-alpine AS builder
WORKDIR /app
COPY . .
RUN go build -o myapp

# Երկրորդ փուլ՝ Մինիմալ ռնտիմ
FROM alpine:latest
WORKDIR /app
COPY --from=builder /app/myapp .
CMD ["./myapp"]

Այս մոտեցումը թույլ է տալիս ստանալ կոմպակտ պատկեր՝ նվազագույն ֆայլային հավաքածուով։