Раздутый образ обычно не результат одной ошибки, а сумма мелочей. В него попадает каталог с историей репозитория, кэш менеджера пакетов, тестовые данные, локальные папки зависимостей, файлы окружения и всё, что лежало рядом на момент сборки.
Первое лекарство — список исключений для контекста сборки. Он работает так же, как список игнорируемого в системе контроля версий, и не даёт лишним файлам вообще уехать сборщику. Заодно ускоряет сборку: контекст не нужно передавать целиком.
Второе — базовый образ. Полноценный дистрибутив удобен для отладки и тяжёл в работе. Урезанные варианты меньше, но в них может не хватать привычных утилит и системных библиотек, и это выясняется не сразу.
Третье — понимать, зачем вы уменьшаете. Размер важен не сам по себе, а через скорость выкладки, стоимость хранения и площадь для атаки. Лишний пакет в образе — это ещё и лишняя уязвимость, которую придётся закрывать при следующем обновлении 📈
Docker на Практике
@docker_practice_ru_n1k
Раздутый образ обычно не результат одной ошибки, а сумма мелочей. В него попадает каталог с историей репозитор
Этот пост опубликован в Telegram-канале Docker на Практике. Подписаться можно по ссылке: @docker_practice_ru_n1k.