Виртуалки сразу отбросил — ноут не очень радовался соседям внутри:) Докер поджирал заметно ресурсы
Я не пользуюсь windows при разработке, но кажется, что докер через WSL2 должен работать с минимальным оверхедом, и потреблять столько же, как обычный дистрибьютив? docs.docker.com/docker-for-windows/wsl
Не пробовали такой вариант?
- Проект держим в файловой системе WSL.
- Подключаем сетевой диск в винду. Например,
\\wsl$\Ubuntu
. - Открываем проект с этого диска в любимой IDE.
Смотря с чем сравнивать.
Еще из косяков докера — очень долгая работа операции COPY при сборке контейнера. Но видел похожее issue на гитхабе, может быть пофиксят.
WSL пока живет, крутит несколько проектов и все хорошо
www.jetbrains.com/help/phpstorm/deployment-in-PhpStorm.html
Суть в том, что можно вообще не монтировать файловые системы, а использовать синхронизацию через FTP/SFTP. В этом случае и IDE и приложение работают в своих «родных» файловых системах, и соответсвенно издержки производительности равны нулю. При этом не важно, где именно запущено приложение. Это может быть WSL с Докером или без, Virtual Box, удалённый Линукс сервер в облаке и т.д. Синхронизация может происходить автоматически при сохранении локального файла. В случае локальной сети, деплой изменённого файла занимает 20 — 100 мс. Этого достаточно, чтобы приложение обновилось пока вы переключаетесь между окном IDE и браузера. Единственное не удобство это первоначальный деплой большого проекта. Загружать тысячи файлов через SFTP это долго. Поэтому, лучше файлы проекта выкачать прямо на удалённом сервере, например через Гит.
Помимо проблем с Windows, есть много других поводов использовать удалённый серевер для локальной разработки. Например, «тяжелые» проекты, которым требуется несколько сотен ГБ на локальном диске, или проекты со сложной инфраструктурой. Вместо того, чтобы объяснять верстальщику как поднять проект в Docker на WSL, можно просто дать ему SSH доступ к удалённому dev серверу. По сути локальная машина превращается в тонкий клиент. Все что нужно иметь в ней это браузер, терминал, IDE и Гит. Даже PHP не нужен. Все инструменты типа Composer и npm запускаются на удалённой машине. Xdebug настраивается примерно так же как описано в этой статье.
Мы примерно так и работаем когда речь идёт о "поправить вёрстку". Я стараюсь придерживаться идеи, что настройка окружения разработчику не должна затрагивать (или затрагивать по минимуму) другие сферы ответственности. То есть верстальщик не должен поднимать у себя php, бекендер не должен поднимать vue dev сервер и тд.
В таком случае можно максимально быстро онбордить в проекты людей. Описанный вами способ нами достаточно часто используется.
Дайте, пожалуйста, знать, что получится. Еще интересно по поводу сети. Как я понимаю, проблемы сети между wsl и виндой помножатся на проблемы сети между wsl и докером. На данный момент проблемы с сетью отпугивают от wsl больше всего :)
Linux Apahce MySQL PHP !== Windows Apache MySQL PHP. У меня LAMP только на проде и я не использую виртуализации
Как вы разрабатываете на PHP?Ubuntu это такой алиас для всех Линукс дистрибутивов?
Ubuntu + LAMP
Ubuntu + Docker
explorer.exe
создаётся ощущение что этот мир где то свернул не туда. Линукс запущенный через WSL, это не тот Линукс к которому вы могли привыкнуть. Например, в нём нет systemd и Docker нужно ставить через десктопное Windows приложение. У WSL есть только два приемущества по сравнению с Virtual Box / VMware, экономия памяти и быстрый запуск. Если для вас это не критично, то намного проще и удобней использовать виртульные машины.
Xdebug через Windows Subsystem For Linux 2 (WSL2)