Насколько всем известно, веб-разработчик перед тем, как начать программировать, клонирует Git-репозиторий себе на компьютер. А только потом производит изменения. Конечно же, подразумевается, что у него на компе уже готово web-окружение (web-сервер, python, php и т.д.) и он может тестировать свою локальную копию.
Но можно ли сделать так, чтобы у каждого веб-разработчика была своя папка на сервере разработки? Хочется сделать так, чтобы каждому новому веб-разработчику не приходилось поднимать веб-окружение на своей машине и не клонировать на неё код.
Например, пришёл новый разработчик Вася. На сервере разработки он склонировал папку главного репозитория на этот же сервер. После каждого изменения он сможет спокойно просматривать результат.
Есть ли какие-либо готовые решения/системы для этого? Или можно это сделать всё самому?
Кирилл: мануалов тысячи, это как джентльменский набор типа xampp, но в виртуальной машине с подготовленными настройками окружения. От программиста остается только запустить ее, зайти по ssh в рабочую папку и склонировать вашу репу.
Работаю в конторке где реализован такой принцип. Тут есть и плюсы и минусы.
+ Не нужно тратить время на клонирование, скачивание базы и поднятие сервера. Раз в день или неделю можно обновлять базы.
+ Проще показать менеджеру/тимлидеру/директору ваши изменения. Бац дал ссылочку на окружение и все рай для тестирования.
- Задолбаешься коммитить пушить и мерджит. Плюс еще сервер релоадить надо.
- Из за того что все работает на стороннем сервере, live разработки не будет. Приходится кодить вслепую.
Минусы не совсем понял. А какая разница куда мы клонируем? К примеру, центральный dev-репозиторий хранится на сервере A. На этом же сервере поднята Samba с расшаренными папками. Каждая такая папка это разработчик. Когда приходит новый разработчик, он заводит себе такую share-папку и клонирует туда git-репозиторий. Причём, на каждую такую папку настроен, к примеру, Nginx.
Кирилл: ну во первых самба незачем, он не безопасна, не понятна и много чего. Тот же ssh тоже монтировать можно . Во вторых лучше для каждого разраба сделать свою учетную запись, с пермишенами. так же не забудьте что если кто то из разработчиков ребутнить сервер, то остальным придется подождать секунд 15
Хасан Истамкулов: Для каждого пользователя будет своя "песочница". Т.е., у Васи будет свой процесс Nginx, у Ивана своя и т.д. Ребутить смогут без проблем.
Насчёт самбы думаю не стоит переживать и думать про безопасность. Всё ведь будет происходить в 4 стенах, где все друг друга знают ;-)
Была такая система раньше и у нас. Очень не понравилась. Как диск то мы цепляли, но работало это всё значительно медленнее, чем на локальной машине. В итоге половина разработчиков все равно все разворачивали локально.