Образ на 1,2 ГБ там, где хватило бы 80 МБ
Первый собственный Dockerfile почти всегда получается раздутым. Разбираю, откуда берётся вес и как его убрать.
Причина 1: тяжёлый базовый образ. FROM ubuntu тянет полную систему. Для большинства задач подходят alpine-варианты: node:20-alpine вместо node:20 — разница в разы.
Причина 2: мусор от установки пакетов. После apt-get install остаётся кэш. Чистите в той же строке: RUN apt-get update && apt-get install -y curl && rm -rf /var/lib/apt/lists (с содержимым папки). Именно в одной строке — каждая RUN создаёт слой, и удаление в следующей строке не уменьшит предыдущий.
Причина 3: попали лишние файлы. COPY . . копирует всё, включая node_modules, .git, локальные дампы. Создайте .dockerignore по аналогии с .gitignore.
Причина 4: сборка и запуск в одном образе. Для фронтенда используйте multi-stage: собираете в одном образе, копируете готовые файлы в лёгкий nginx.
Проверяйте результат через docker images.
Docker для Маркетера
@docker_marketers
Образ на 1,2 ГБ там, где хватило бы 80 МБ
Этот пост опубликован в Telegram-канале Docker для Маркетера. Подписаться можно по ссылке: @docker_marketers.