LINUX.ORG.RU

Vagrant + Docker + Linux/Windows/Mac

 , ,


0

2

Всем добра!

Работаю 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.

подключения по VPN к клиентам, что возможно только под виндой

Что за впн такой который который только под видной?

Ничего не понял если честно с твоего поста… Понял только что у тебя зверинец целый. Докер это контейнеризация процессов, вагрант это виртуализация целой ОС - решение для разных задач.

Лично у меня есть сервер виртуализации под qemu\kvm он постоянно работает и там есть win, я всегда могу к ней подцепиться если надо. Если у тебя железа куры не клюют и ты хочешь сразу две системы - ставь автостарт виртуальной машины. Если нет - ищи альтернативы.

Так зачем ограничиваться докером если можно всё держать в виртуалке

Я бы сказал наобарот - зачем держать целую систему если тебе нужно поднять один сервис вроде OpenVPN?

при необходимости делать бэкап всей среды и даже передавать его на разные рабочие станции

зачем делать бекап всей среды, если у тебя 99% данных будут неуникальными, а 1% - это твои конфиги и проект. В докере можно 2 варианта сделать :

  • 1 и верный это, скажем у тебя есть сервис php, там гоняется твой код. Ты выносишь свой код в сторейдж и бекапишь только его. В случае необходимости подсовываешь на другой машине этот код контейнеру с пхп сервисом.
  • 2 неверный(алахакбар!): делаешь коммит контейнера в имейдж и на другом сервере его разворачиваешь. Не удобно, громостко, толсточенный бинарник выходит, но это всё равно меньше чем виртуалка будет
sky92
()

самый простой вариант: добавить ssh сервер в develop версию docker пакета и подключаться туда тем же sublime через ssh, запустив и пробросив порт на docker сервере. В этом случае ты будешь работать с докером как полноценным dev сервером.

Jopich1
()
Последнее исправление: Jopich1 (всего исправлений: 1)

Ставь на винду какой-нибудь виртуалбокс, а в него свои докер-контейнеры привычном для лубунты образом. Иначе АдЪ и Сотона.

r_asian ★☆☆
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.