Посмотрев на собственные посты и комментарии в прошлом, посмотрев на сообщество и степень его активности на данный момент, посмотрев на степень развития и направление развития вендора, я решил что постить статьи о разработке в блоги битрикса бессмысленно. Поэтому я решил размещать статьи у себя в блоге (он обязательно появится, руки не доходят), а сюда скидывать ссылку - как это делают все вменяемые разработчики.
К делу.
Я считаю разработку на битриксе неповоротливой и очень долгой, чтобы это ускорить я решил использовать docker. Разворачивание окружения занимает секунды (после первого запуска - сначала подтянутся все зависимости) и позволяет работать с проектом практически мгновенно. Не думаю, что стоит рассказывать о докере много (тема давно известна). Вообще, репозиторий создавался для своих целей, но если кому то поможет в разработке (почему бы не поделиться).
Что в сборке: - PHP 7.3 (в том числе CLI а также composer) - Встроенный xdebug / opcache - nginx 1.14 (apache не нужен, как бы совсем, тем более для разработки) - mysql 5.7 (хочется 8, но пока битрикс на нём не заводится) - smtp сервер (mailhog доступен по локальному адресу для просмотра писем) - memcache (пока нет официального расширения для php 7.3) - redis
Планируется: - bitrix-push-server - mariadb (вместо mysql) - поддержка композитного кэша - поддержка битрикс24
PS Я знаю что есть https://github.com/bitrixdock/bitrixdock - и это очень неплохая сборка докера (на самом деле это лучшая сборка битрикс докера), но у ребят идея сделать это универсальным средством и для прода и для дева - это другой путь. Моя же цель - сделать сборку современной (использовать последние версии ПО), простой, и удобной для разработки в первую очередь (мало кто доверяет докеру на проде, но это вопрос времени)
Вы конечно большой молодец и хотя кое-где я с вами не согласен, но бог с ним. Однако, риторический вопрос - почему все игнорируют настройки для Битрикс24 или же его никто не использует? О.о
PS. имхо 2 контейнера для РНР это перебор имхо, можно и 1м обойтись.
Kryachek Mikhail, Для б24 будет, но позже - основная проблема с пуш сервером, но это решаемо. Если бы ещё для б24 был бы лист настроек - было бы замечательно. б24 тоже можно поставить и потыкать (без пуш сервера очередей и веб сокетов) - пока упор просто не на нём. Двигаюсь от простого к сложному.
Про PHP-CLI и PHP - не думаю что это должен быть один контейнер, так как командный интерфейс не нуждается в такой кипе настроек и модулей как php для вебсервера и чем дальше это будет тем сильней будет видна разница, к тому же есть вероятность в будущем запускать несколько процессов php (возможно)
Вы же можете собрать nginx c nginx-push-stream-module и не надо будет заморачиваться с вендорским сервером очередей. Веб сокеты должны работать (точнее они работают, просто проверку сайта завалювают), но это поправимо если вы в /etc/hosts php контейнера добавите записи)
Если честно несколько сомнительна экономия на спичках модулях РНР\настройках, т.к., как мне кажется, на 90-95% они будут продублированы, чтобы выполнять любой необходимый код. А вот зоопарк настроек, билдеров итд - это "такое себе".
Kryachek Mikhail Вы же можете собрать nginx c nginx-push-stream-module
Да есть мысль об этом, я думаю (у меня же концепция современное ПО, а значит хотелось бы реализовать второй вариант когда свой пуш сервер, к тому же уже есть идеи)
Kryachek Mikhail Если честно несколько сомнительна экономия на спичках модулях РНР\настройках
В рамках этой сборки докера планируется добавление N сервисов. Консольные приложения (а также тяжеловесные операции по обработке чего либо) лучше запускать на отдельном php (ну это мой мнение)- я не думаю что отключение хdebug - это спички
Kryachek Mikhail написал: Если честно несколько сомнительна экономия на спичках модулях РНР\настройках, т.к., как мне кажется, на 90-95% они будут продублированы, чтобы выполнять любой необходимый код
docker-compose up --build -d mysql nginx php-fpm
Можно поднять только те контейнеры, которые необходимы
Вариант с вендорским пушем может и лучше, но у меня пока руки не дошли его прикрутить, так что пока обходимся nginx-push-stream-module. Доки нормальной нет, а перелопачивать вендорские творения желание как то особо нет.
хdebug - возможно. У нас он на продакшене отключен, поэтому получается счет на спички.
Микулич Евгений, вот это и расстраивает. Я не очень дружу с командной строкой, но когда устанавливаю Docker и выполняю разные команды, начинающиеся с docker - вылазят ошибки, не помню уже какие, год назад это было. Так и не смог их побороть.
Рязанцев Андрей написал: вылазят ошибки, не помню уже какие, год назад это было. Так и не смог их побороть.
Любой инструмент предполагает изучение его инструкции к применению. Многие ставят докер (и любые другие инструменты) но разбираться в этом не хотят - само по себе ничего не заработает, надо разбираться.
Группы на сайте создаются не только сотрудниками «1С-Битрикс», но и партнерами компании. Поэтому мнения участников групп могут не совпадать с позицией компании «1С-Битрикс».