Sobes.tech
Back to questions
Junior — Middle
74

Какие подходы позволяют снизить объем конечного Docker-образа?

Companies where asked
ГринатомГринатом
Avanpost

Answer from AI

sobes.tech AI

Для снижения объема конечного Docker-образа применяются следующие подходы:

  • Использование минималистичных базовых образов: например, alpine вместо ubuntu или debian.
  • Многоступенчатая сборка (multi-stage builds): позволяет собирать приложение в одном образе, а в финальный копировать только необходимые артефакты.
  • Удаление временных файлов и кешей: очищать пакеты, кеши менеджеров пакетов, временные файлы после установки.
  • Объединение команд RUN: уменьшает количество слоев образа.
  • Использование .dockerignore: исключает из контекста сборки ненужные файлы.

Пример многоступенчатой сборки:

FROM golang:1.20-alpine AS builder
WORKDIR /app
COPY . .
RUN go build -o myapp

FROM alpine
COPY --from=builder /app/myapp /myapp
CMD ["/myapp"]

Такой подход позволяет получить компактный образ с только необходимым для запуска приложением.