
Минус 500 MB: оптимизируем Docker-образ Django-приложения
shoytov 14 минут назад Минус 500 MB: оптимизируем Docker-образ Django-приложения Простой 7 мин 451 Блог компании YADRO Django * Python * DevOps * Веб-разработка * Туториал Когда Docker-образ backend-приложения начинает...
Anthropic — What company has the best second artificial intelligence model at the end of June?
Вот важная новость с фронта ИИ: shoytov 14 минут назад Минус 500 MB: оптимизируем Docker-образ Django-приложения Простой 7 мин 451 Блог компании YADRO Django * Python * DevOps * Веб-разработка * Туториал Когда Docker-образ backend-приложения начинает весить 1,5 GB, это уже хороший повод хотя бы посмотреть, что вообще лежит внутри. Пока все работает, мало кто задумывается, сколько мусора, dev-зависимостей и ненужных файлов уезжает в production вместе с приложением. Но на самом деле от «лишнего веса» нужно избавляться, потому что каждый лишний мегабайт — это более долгие сборки и дополнительные сложности.
Меня зовут Дмитрий, я руководитель группы разработки в YADRO. В этой статье поделюсь своим опытом оптимизации и покажу на примере, как уменьшить размер production-образа Django-приложения почти на треть. Основные принципы оптимизации Docker-образовОставлю чек-лист, который я использую при оптимизации размера Docker-образов с приложениями:Проверить .
Технические детали
dockerignore и убедиться, что в образ не попадает лишнее. Использовать Multi-stage build в Dockerfile. Разделить зависимости на группы: основные зависимости и dev-зависимости, используемые только во время разработки.
Оставить в конечном образе только минимально необходимый набор пакетов. Убедиться, что все указанные зависимости действительно используются приложением. Oчистить кеши после установки зависимостей.
Минимизировать количество слоев при сборке образа. Использовать более компактный базовый образ. Исключить тестовые файлы из итогового образа — даже не ради экономии места, а как часть good practices.
Отраслевые последствия
В качестве «подопытного» буду рассматривать один legacy-проект, с которым мне довелось работать. В примере будет не конкретный код проекта, а данные о размере Docker-образа и проделанных шагах по оптимизации. План оптимизации Docker-образов по шагамДля начала я запустил приложение в контейнере как есть, чтобы получить точку отсчета.
Итоговый Total Image Size составил 1. Для анализа содержимого образа я использовал утилиту Пойдем по пунктам из чек-листа. dockerignoreВ моем случае файл .
dockerignore выглядел примерно так:. md Dockerfile* docker-compose* . python-version docs/ data/ media/ conf/ static/ pyrightconfig.
Событие, по словам экспертов, усилит конкуренцию в сфере ИИ.





