🧠 Автоматически способен применять такие методы, как многоэтапное создание сборок, переход на более лёгкие базовые образы, такие как alpine, и проверку зависимостей.
❓ Причина создание инструмента
Каждая организация, использующая контейнеры в средах разработки или производства, понимает, насколько сложно управлять сотнями или даже тысячами раздутых образов Docker в своей инфраструктуре. Это обусловлено наличием высоких затрат на хранение и передачу данных, длительным временем сборки, низкой производительностью разработчиков.
Проблема становится ещё более болезненной и дорогостоящей при использовании интерпретируемых языков, таких как Nodejs и Python. Приложениям, написанным на этих языках, необходимо упаковывать интерпретаторы и все их зависимости в образы контейнеров, что значительно увеличивает их размер.
🤯 Но существует возможность уменьшить размер образа Docker размером 1 ГБ до всего 100 МБ благодаря данному инструменту.
⭐️ Установка и использование
Скачать архив с двоичным файлом можно со страницы релизов.
Распаковать
tar -xvzf dockershrink_0.1.7_linux_amd64.tar.gz .Для использования необходимо перейти в корневой каталог вашего проекта Node.js и запустить dockershrink:
# Для оптимизации существующих файлов, связанных с Docker
./dockershrink optimize
# Для создания новых файлов Docker
export OPENAI_API_KEY=...
./dockershrink generate
Dockershrink создает новый каталог, в котором находятся созданные им файлы. По умолчанию этот каталог называется dockershrink.out.
Для включения функции ИИ необходимо предоставить свой ключ API OpenAI.
dockershrink optimize --openai-api-key <ваш ключ API OpenAI>
❕В настоящее время инструмент поддерживает только приложения NodeJS.
