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"]
Այս մոտեցումը թույլ է տալիս ստանալ կոմպակտ պատկեր՝ նվազագույն ֆայլային հավաքածուով։