В этом материале не будет подробностей по установке Laradock или Homestead. В нем я опишу лишь то, что по моему мнению стоит ставить. Если будет спрос, опишу установку отдельным материалом. Те кто изучают ларавел, вполне могут испугаться еще и докера, да и хомстеда. Мол, я еще это не выучил, а еще и то же нужно учить. Но все гораздо проще. Чаще всего все сводится к установке пары софтин и выполнению нескольких команд. Но, без знания линукса, хотя бы базового, будет сложновато.
Homestead - окружение для тестирования проектов Laravel
Homestead - для меня это было уже второе окружение под ларавел для локальной разработки. До этого был веб-сервер на Apache 2 + php 7. Если взять еще ранее, то до переезда на виндовс ввиду специфического софта, много лет пользовался линуксом как десктопом и веб-сервером локальным было тоже окружение что и на сервере - nginx + php-fpm. Но вот на винде такое поставить сложно в изначальном виде, а использовать WSL уже можно, но сейчас нет особой нужды и позже описывая Laradock, возможно станет понятнее почему.
Для установки Homestead нужно выбрать базовую технологию виртуальной машины. Для многих это VirtualBox, хотя есть и альтернативы, но они платные. Всем этим рулит Vagrant, который запускает виртуальную машину и останавливает. Vagrant имеет широкие возможности, но управление Homestead-ом сводится к запуску и остановке, в процессе которой настраиваются сеть и т.д.
В целом, после апача с пхп на винде процесс мне понравился. Сами папки проектов монтируются внутрь виртуальной машины. Потому удаление ее не приводит к повреждению проектов, а внесение изменений в проект сразу же отображается на виртуальной машине. Но есть свои Но.
- Скорость работы. Откровенно говоря, всякими ухищрениями можно выжать чуток производительности, но в целом оно остается низким. Даже подключение через разные протоколы, повышая скорость увеличивало время синхронизации файлов внутри проекта и это было печально. Когда внесенные изменения сохраненные в файле отображались на проекте с задержкой.
- Вагрант не всегда поднимался и причиной чаще всего были конфликты сетевых карт. При этом завершившись виртуалбокс мог не удалить устройство, но и не задействовать его же заново. Приходилось удалять его вручную и перезапускать вагрант на запуск. Вполне вероятно что победить это можно, но вопрос временных затрат и усилий.
- Используемые ресурсы. Тут подразумевается как место на винте, под виртуальную машину и образ жесткого диска, так и выделенные ресурсы процессора и оперативной памяти. Машина по сравнению с докером значительно нагружает систему. Да, можно перекомпилировать часть пакетов системы под работу, чтобы производительность была выше. Но мы не садомазохизмом занимаемся и должны выполнять задачу ко времени, а не вечно настраивать/перенастраивать инструмент, а потом обновить образ и все по кругу. Но больше всего меня нагружало все больше разрастающаяся "черная дыра" на жестком диске, поглощающая много места на и без того не емком SSD.
Laradock - Docker окружение под проекты Laravel
Помучавшись с Homestead-ом некоторое время и определившись с плюшками такой среды, наступил период двигаться дальше. Но не сказать что выбор огромен. В целом после хостеда логичный шаг смотреть в сторону ларадока. Обьяснять что такое докер сильно не буду. Это, если сильно упростить, тоже виртуальная машина. Но в ней реализован луковичный принцип формирования файловой системы. То есть у вас к базовой файловой системе подключаются слои с разным установленным софтом, а с помощью специального YML файла, настраивается как-раз это подключение и взаимодействие софта из этих самых слоев. Laradock - это в целом уже готовое решение, сформированная подборка образов обьединенная специальным файлом конфигурации. В нем вам достаточно внести всего-лишь некоторые небольшие изменения, чтобы дальше ваш проект работал как нужно. В моем случае, на ларадоке, да и на хомстеде до этого, висели все мои проекты. А это несколько проектов по ларавел и даже пара на вордпрессе и Yii 1-2. Все это спокойно и легко работает на обеих средах, без какого-то шаманства. Под виндой это все работает на основе Docker Desktop, используя виртуализацию. И вот тут важно понимать, что Windows 10 Home не поддерживает виртуализацию, нужную для докера. Обновленная Windows 10 Pro уже имеет возможность использовать WSL2.
WSL(Windows Subsystem for Linux) - это подсистема в винде, позволяющая использовать софт написанный под линукс, без излишнего шаманизма и перекомпиляции. Проще говоря, в винду встроили основу линукса, заставив софт из последнего чувствовать себя как дома. WSL2 - это обновление этой подсистемы со значительными улучшениями. Но доступна она не без шаманизма, так как для ее установки недостаточно просто ее "включить" одной галочкой.
Ошибки в ларадоке тоже имеют место быть. Чаще всего это ошибка в конфигурационном файле сборки - yml, или же ошибка запуска Docker Engine при загрузке винды. Первое лечиться изучением ошибки при сборке докер композером, второе - перезапуском докер десктоп из-под админских прав, но до этого нужно убить текущий запущенный процесс докера.
Homestead vs Laradock
Для себя я сделал вывод в пользу последнего, хотя обьективности ради, управлять хомстедом новичку немного проще. Для этого изучая линукс базово можно подключиться к виртуальной машине через SSH и установить/удалить нужные пакеты. Без знаний линукса, изменить файл сборки докер композера будет сложно, а делать это через SSH, как в Homestead, не имеет большого смысла. При пересборке пакеты будут сброшены и система просто соберет все заново забыв о внесенных изменениях.
Вероятно начать с Homestead начинающему будет проще, позже переключившись на Laradock. Но стоит помнить главное - если боятся и считать это страшным делом, то так оно и будет.
Отзывы
Пока нет комментариев
Для того чтобы оставить комментарий, авторизуйтесь.