Senior
Кадом амалҳо барои кам кардани андозаи тасвири Docker вуҷуд доранд?
sobes.tech AI
Ҷавоб аз AI
Барои кам кардани андозаи тасвири Docker, чанд амалия татбиқ мешаванд:
- Истифодаи тасвирҳои асосии минималистӣ, масалан,
alpineдар ҷойиubuntu. - Сохтани бисёрмарҳилавӣ (multi-stage builds), ки дар марҳилаҳои аввал барнома сохта мешавад ва дар тасвири ниҳоӣ танҳо муҳити минималӣ бо бинарии сохташуда боқӣ мемонад.
- Тоза кардани кешҳо ва файлҳои муваққатӣ пас аз насб кардани вобастагиҳо дар Dockerfile.
- Ҳамҷоя кардани фармонҳои RUN барои кам кардани шумораи қабатҳои.
- Истифодаи
.dockerignoreбарои истисно кардани файлҳои нолозим аз контексти сохт.
Маслиҳат барои Dockerfile бисёрмарҳилавӣ барои Go:
# Марҳилаи 1: Сохтани
FROM golang:1.20-alpine AS builder
WORKDIR /app
COPY . .
RUN go build -o myapp
# Марҳилаи 2: муҳити минималӣ барои иҷро
FROM alpine:latest
WORKDIR /app
COPY --from=builder /app/myapp .
CMD ["./myapp"]
Ин усул имкон медиҳад, ки тасвире кӯтоҳ ва бо камтарин файлҳо ба даст орад.