Sablier: как запускать контейнеры только когда они нужны

Напарник подкинул интересную идею — использовать Sablier для автоматического старта/стопа редко используемых сервисов. Разобрались, внедрили, теперь делюсь опытом и полной настройкой. Проблема У нас 15 тестовых окружений, которые работают 24/7, но реально нужны пару часов в неделю. Контейнеры жрут ресурсы просто так: # Мониторинг показывал docker stats --no-stream CONTAINER CPU % MEM USAGE / LIMIT MEM % dev-frontend 0.01% 128MiB / 2GiB 6.25% dev-backend 0.02% 256MiB / 4GiB 6.25% staging-api 0.01% 312MiB / 2GiB 15.25% # ... ещё 12 контейнеров # Итого: ~3GB RAM и CPU cycles впустую Что такое Sablier? Sablier — это специальный прокси-сервер, который реализует паттерн Scale-to-Zero: ...

July 28, 2025

Docker образы: от 2GB до 50MB за 5 шагов

У меня есть правило: если Docker образ больше 500MB - что-то пошло не так. Недавно помогал коллеге оптимизировать образ Node.js приложения. Начальный размер - 2.1GB. Финальный - 48MB. Расскажу пошагово, как мы это сделали. Исходная точка: 2.1GB кошмара Вот с чего начиналось: FROM ubuntu:latest RUN apt-get update && apt-get install -y \ curl \ wget \ git \ build-essential \ python3 \ nodejs \ npm WORKDIR /app COPY . . RUN npm install RUN npm run build CMD ["npm", "start"] Проверяем размер: ...

July 25, 2025

Dive (docker)

Dive: Как я нашел 800MB мусора в Docker образе и уменьшил его на 45% Docker образы имеют свойство незаметно распухать. Сегодня расскажу про инструмент, который помог мне найти почти гигабайт лишних файлов в production образе, и покажу, как использовать Dive для оптимизации ваших контейнеров. История началась с алерта Утро понедельника началось с сообщения от команды платформы: “Ваши образы занимают 40% места в registry. Можете оптимизировать?” Проверяю размеры: docker images | grep my-app my-app latest 3d4f5g6h 2 hours ago 1.82GB my-app v1.2.3 1a2b3c4d 1 week ago 1.79GB my-app v1.2.2 9z8y7x6w 2 weeks ago 1.81GB Node.js приложение весит почти 2GB? Что-то тут не так. ...

July 19, 2025