Работа над несколькими проектами на одной машине
Всем привет!
У меня следующая ситуация: я занимаюсь саппортом различных проектов, для запуска которых требуется различное ПО. Пока что их два:
Первый: PHP 5.6 + MySQL 5.5 + Node.js 0.10.24 + Sphinx 2.1.3
Второй: PHP 7.1 + MySQL 5.7 + Node.js 6.11.0
Сейчас работаю под Windows и для их запуска пользуюсь WAMP OpenServer. Но уже на данном этапе мне неудобно постоянно менять конфигурацию модулей сервера при выполнении задач на разных проектах.
А в будущем ещё планируются проекты на C# ASP.Net...
В общем, резко стал вопрос — как всё это дело организовывать, желательно, чтобы у каждого проекта было своё независимое окружение, которое при желании можно будет старт/стоп. И желательно, чтобы это делалось простой console командой или нажатием на кнопку.
Ну, и чтобы всего этого зоопарка технологий у меня не было на локальной машине.
Пока что у меня следующие варианты:
1) Oracle VirtualBox + отдельные виртуалки с Ubuntu без графической оболочки под каждый проект. Т.е. на виртуалке будет развёрнут веб-сервер, который будет запускать проект. Файлы проекта будут на основной машине, а на виртуалке доступ к ним будет через шаред каталог. Браузер, IDE и Version Control будут на основной машине (плюсы — просто и удобно, минусы — затратно по ресурсам)
2) Docker + контейнеры под каждый проект (начал реализовывать: не получилось автоматически настроить создание БД и пользователя в Dockerfile, максимум, что удалось — в Dockerfile прописать установку нужного софта. Запуск серсисов, создание БД и индексов Sphinx приходится делать внутри контейнера и настраивать VOLUME’s для сохранения изменений после остановки контейнера. Всё это показалось мне жутко неудобно... Хотя, может, я просто плохо разобрался с Docker. Хотя, покопавшись в Интернете, встретил мнения людей, что Docker — это вообще технология не для удобства локальной разработки, а для производительности в проде. В общем, я вообще сомневаюсь, стоит ли мне его использовать для своих задач. Но из плюсов — суперская производительность по сравнению с виртуалкой).
3) Vagrant (о нём вообще только слышал, сам не работал)
Посему хотелось бы услышать мнение авторитетных и более опытных товарищей, которые сталкивались с похожей ситуацией и было бы интересно узнать, какие инструменты вы использовали, чтобы определиться с выбором (возможно, их даже нет в моём списке).
61 коментар
Додати коментар Підписатись на коментаріВідписатись від коментарів