TGViewer
Deep Digital Deep Digital @deepdigital · 1.06K subscribers
Post #127 1.32K
Make the developer happy!
#backend #frontend #docker

Каждый разработчик знает, что в Студии не приветствуется фраза «У меня локально все работает, а на тестовом серваке — не собирается!».

Ввиду широкого стека разработки и наличия легаси-проектов разработчик не может иметь полный постоянный перечень системных библиотек и библиотек уровня кода. Их версии и состав могут различаться для разного типа проектов.

Например, для сборки frontend-статики в 2017 году мы использовали Node.js v8, в 2019 году — Node.js v11, а сейчас используем v10 и v12.

Более того, окружение системного софта и веб-серверов также различно — для каких-то проектов используется связка Nginx + PHP-FPM, есть несколько старичков на Apache2 + PHP5.6. Для Python Django и Flask — Nginx + Gunicorn.

Для того чтобы окружение программиста было максимально приближено к тестовому/промышленному и он мог жонглировать различными проектами в рамках своей хостовой машины, в локальной разработке мы используем контейнеризацию на основе Docker.

Все сервисы, необходимые для запуска конкретного проекта, описываются в docker-compose.yml, сервисы, необходимые для сборки и отладки проекта, — в файле docker-compose-build.yml. Управление контейнерами производится с помощью утилиты docker-compose. Ну не ставить же каждому разработчику Docker Swarm или K8S 🤔

Таким образом, мы разделяем runtime-контейнеры и контейнеры, необходимые для сборки частей frontend и backend. Конечно, никакого CI/CD тут нет — просто облегчаем жизнь разработчику.

Типовая конфигурация для docker-окружения хранится в корпоративных базовых шаблонах под каждый стек и разновидность веб-сервиса или сайта. Динамические параметры, зависящие от проекта, управляются с помощью удобного механизма переменных окружения и файла .env.

Приятный бонус заключается в том, что для сборки и локального запуска проекта мы заворачиваем соответствующие docker-compose-команды в Makefile. Теперь собрать и запустить проект можно в две команды:

$ make build
$ make up


Например, для запуска простого приложения в связке Nginx + PHP-FPM и сборки frontend-части с помощью Node.js можно использовать эти docker-compose.yml и docker-compose-build.yml. А управлять этими процессами — с помощью этого Makefile.

Упрощайте жизнь разработчикам, чтобы они думали об архитектуре приложения и чистом коде, а не об окружении и запуске 👨‍💻
More from @deepdigital
  1. May 19, 2026Как расти в непростом рынке, масштабировать группу компаний и не терять фокус на клиентах?…
  2. Dec 26, 2025⚡️Подвели итоги 2025 года Chulakov Group Записали подкаст с Олегом Чулаковым — основателем…
  3. Dec 8, 2025Победы на Tagline Awards 2025 🏆 Снова громко напомнили, зачем делаем дизайн — чтобы созда…
  4. Jun 9, 2025Chulakov ⨉ ИТМО 💥 Мы снова в одном из крупнейших IT-вузов России. Альберт Рыбалко, руково…
  5. Jun 6, 2025🏆 Chulakov — № 1 в дизайне по всем рейтингам Безоговорочный лидер по версии крупнейших ан…
  6. May 6, 2025🙌 Вспоминаем, как насыщенно провели время на IT-конференции Merge Были рады стать партнер…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →