Внедрение Docker

Автор: Денис Сахаров

Перешли на локальную разработку по всем проектам (у нас в GIT их больше 100 активных). В процессе реализации были разработаны средства, позволяющие быстро скачать и развернуть любой сайт на локальном компьютере.

Цели такого движения:

  • работаем исключительно через GIT;
  • перестаем тратить время на выкладывание файликов на сервера, чтобы увидеть результат после каждой правки;
  • на компьютере разработчика имеем полную кодовую базу проекта, что позволяет пользоваться такими чудесными функциями IDE, как автокомплит, PHPDoc, переход по ссылке и тд;
  • перестаем дебажить на серверах;
  • у всех разработчиков одинаковая программная среда, практически идентичная тому, что мы имеем на боевых серверах.

Проект реализован с использованием Docker, GIT, GNU Make, rsync. Сама идея такого проекта появилась два года назад, активная разработка началась весной 2018 года и заняла примерно полгода. Было совершено несколько подходов к реализации, провели два-три раунда тестирования с избранными программистами из каждой рабочей группы.

В итоге мы получили, что докеризированный (специальным образом подготовленный) проект разработчик может развернуть локально из гита с помощью трех-четырех команд в консоли: git clone, make init, make docker, make composer_install (если используются внешние зависимости). Докеризация происходит добавлением в проект сабмодуля со всем необходимым бойлерплейтом, автоматизирующим локальное скачивание и разворачивание проекта.

Технические требования. Необходимо использовать операционную систему Linux, Mac или Windows 10 Pro x64. Всем остальным придется сложнее, однако, тут остается вариант с VirtualBox и тем же Linux.

По прошествии нескольких месяцев эксплуатации считаем проект успешным. Коллеги стали разрабатывать локально, упростилась настройка компьютера разработчика, появилась возможность быстро устанавливать себе на компьютер любое серверное ПО для нужд проекта, повысилась производительность разработчиков, качество наших проектов и целостность исходного кода.

локальная разработка