Vagrant + Docker + Linux/Windows/Mac
Всем добра!
Работаю php программистом под ubuntu, всё устраивает. Часть проектов полностью докерезирована (mysql, redis, memcache, php, nginx - всё это в своих контейнерах), часть проектов развёрнуты так просто на железе или в докере только БД и прочие мелочи.
Но появилась необходимость некоторые проекты запускать под Windows (из-за тупости подключения по VPN к клиентам, что возможно только под виндой).
Возможно, в дальнейшем попробую пересесть на macOS, но нужда в Windows останется и от linux отказываться не собираюсь.
Вот и вопрос, как правильно настроить рабочее окружение? Попробовал на ubuntu развернуть всё в vagrant и пробросить папки проектов через synced_folder - намучался основательно.
То php-процессы не могут писать в файлы/папки, то composer не может писать в vendor и нужно почему-то запускать его с параметрами –no-plugins, плюс, открываются страницы проектов в 2 раза медленней, чем на хосте, и это заметно и больно.
И докеру плохо от того, что папки проектов в момент старта докера могут не существовать в виртуалке и тд.
Попробовал всё развернуть в виртуалке под vagrant и не пробрасывать на хостовую машину ничего. Просто в файловом менеджере (PCManFM - у меня lubuntu) подключаюсь по sftp к виртуалке, а там уже доступны все файлы проектов. Для эксперимента выбрал свой любимый sublime text и в нём добавил проект. Он его достаточно быстро проиндексировал. Проблем не заметил, хотя игрался мало и возможно, они есть и не маленькие)
При этом, просадка в производительности процентов 20 и не очень заметна. gitk могу выполнять открывая в терминале уже примонтированную папку проекта, с самим гитом работать можно через ssh и это не супер удобно, но и не супер-критично.
Отсюда вопрос - извращенец ли я?) Какие подводные камни я не заметил и какой способ работы правильный?
Докер для винды и мака всё равно запускает виртуалку с линуксом, мак делает это как-то легковесно в новой версии, на счёт винды ничего не знаю, но всё равно это виртуалка. Так зачем ограничиваться докером если можно всё держать в виртуалке, при необходимости делать бэкап всей среды и даже передавать его на разные рабочие станции?
Может быть я не правильно что-то делал и нужно всё таки пробрасывать папки в хостовую машину? Пробовал vboxsf стандартный и nfs.