Назад к вопросам
МТС
Middle
8
Best practices написания Dockerfile: как сделать образы маленькими и безопасными?
Компании, где спрашивали
Ответ от нейросети
sobes.tech AI
Чтобы сделать Docker-образы маленькими и безопасными, придерживайтесь следующих практик:
- Используйте минимальные базовые образы, например,
alpineилиscratch, чтобы уменьшить размер. - Удаляйте временные файлы и кеши после установки пакетов (например,
apt-get cleanи удаление/var/lib/apt/lists/*). - Минимизируйте количество слоёв, объединяя команды в один
RUN. - Используйте многоступенчатую сборку (multi-stage builds), чтобы в итоговый образ попадали только необходимые артефакты.
- Запускайте контейнеры с непривилегированными пользователями, а не от root.
- Ограничивайте права доступа к файлам и переменным окружения.
- Обновляйте базовые образы и зависимости, чтобы закрыть известные уязвимости.
Пример многоступенчатого Dockerfile:
FROM golang:1.20-alpine AS builder
WORKDIR /app
COPY . .
RUN go build -o myapp
FROM alpine:latest
RUN adduser -D appuser
USER appuser
COPY --from=builder /app/myapp /usr/local/bin/myapp
CMD ["myapp"]
Такой подход уменьшает размер итогового образа и повышает безопасность за счёт минимального окружения и непривилегированного пользователя.