Что я вообще хочу от докера при разработке. Во первых, мне нужна локальная копия сайта, именно на этой локальной копии я буду смотреть как собственно работает код. Эта локальная копия должна открываться по красивому адресу, например если основной рабочий сайт это example.com, то моя локальная копия должна открываться по адресу my.example.com. Безо всяких портов типа my.example.com:8747. Я часто открываю сразу несколько проектов и все открытые проекты не должны конфликтовать, то есть например у меня открыто два окна phpstorm в одном ведется разработка проекта example.com, во втором ведется разработка test.ru, и для каждого из этих проектов одновременно должны работать два локальных сайта my.example.com и my.test.ru. Во вторых, мне под каждый проект нужны специальные настройки (mbstring, timezone) и расширения php (типа xdebug). В третьих, мне нужны внешние инструменты типа phpmyadmin для работы с БД проекта или node.js для работы с gulp/webpack. И наконец в четвертых, все это должно быстро подниматься для новых разработчиков которые подключаются к проекту.
Олляк Дмитрий написал: Какая нагрузка на память, место, процессор получается по сравнению с развертыванием проекта непосредственно в ОС, без виртуалок и докеров?
Не мерил специально. Максимум что могу сказать, что битриксовская скорость генерации страницы сравнима с production. От настройки контейнеров зависит. Например прекомпилятор сильно влияет.
Как минимум не хватает: 1. Поддержки push&pull 2. Использование файла .env для более гибкой настройки 3. Автоматическая установка\монтирование проекта\свежей установки\перенос 4. Вывод логов "во вне"
Mikhail Kryachek, статья наверное и правда больше для начинающих. Как сделать так чтобы заработало и про сборку своей конфигурации контейнеров. Это не готовый рецепт, из серии запустил и работаешь. Я больше про тонкости взаимодействия с виндой писал, чем про конкретную сборку.
Это больше для программистов мне кажется. Программисту должны приходить уже собранные образы из репозитория если вы про это. Соглашусь. Для еще не собранного окружения я думаю не актуально.
Kryachek Mikhail написал: 2. Использование файла .env для более гибкой настройки
А можно кратко в чем преимущества отдельного файла?
Это больше для программистов мне кажется. Программисту должны приходить уже собранные образы из репозитория если вы про это. Соглашусь. Для еще не собранного окружения я думаю не актуально.
Раз это блоги Битрикса, то предполагается, что будут программировать, используя Битрикс. Поэтому для полноценной работы необходим push&pull и еще желательно какой-нибудь почтовый сервис, тот же msmtp итп.
А можно кратко в чем преимущества отдельного файла?
Гибкость, можно сделать несколько конфигов и быстро пересобирать контейнеры на основе конфигов. Особенно полезно когда один проект надо быстренько проверить по разными версиями ПО (тот же РНР)
Установка куда? Не совсем понял этот пункт. В статье только про локальную работу.
Автоматическая установка Битрикса, либо клонирование репозитория с проектом итп в процессе создания контейнеров. Я лично решал эту задачу через кастомный ENTRYPOINT
Kryachek Mikhail написал: Поэтому для полноценной работы необходим push&pull
А, вы про модуль битрикса push&pull чтоли? Я думал речь про докеровский push&pull, то есть работу с репозиториями образов докера.
По самой сборке контейнеров замечания понял. И согласен. Но повторюсь там не законченный рецепт окружения, а примеры возможного, плюс тонкости именно локальной работы.
Kryachek Mikhail написал: Автоматическая установка Битрикса, либо клонирование репозитория с проектом итп в процессе создания контейнеров. Я лично решал эту задачу через кастомный ENTRYPOINT
Это интересно. Можете поделиться лучшим вариантом реализации такой развертки с вашей точки зрения? Чтобы на любой машине при создании контейнеров все прям собралось. Где-то заранее архив с битриксом и БД подготовить? Хранить весь битрикс вместе с модулями в репозитории? На лету с живого тестового сайта копировать? Еще как то?
И еще, как по вашему лучше конфиги / докерфайлы образов хранить, в репозитории вместе с файлами проекта или отдельно?
Не совсем, я про то что nginx надо собирать с nginx-push-stream-module или nodejs и вытаскивать решение из текущей VM.
Это интересно. Можете поделиться лучшим вариантом реализации такой развертки с вашей точки зрения? Чтобы на любой машине при создании контейнеров все прям собралось. Где-то заранее архив с битриксом и БД подготовить? Хранить весь битрикс вместе с модулями в репозитории? На лету с живого тестового сайта копировать? Еще как то?
Я не большой гуру в docker'е, но у себя реализовал таким образом, в .env есть переменная APPLICATION_FROM=<git><path>.git Т.е. в момент разворачивания php-fpm контейнера, запускается кастомный ENTRYPOINT скрипт, который согласно параметру APPLICATION_FROM клонирует репозиторий или скачивает и разворачивает резеврную копию с "живого" проекта.
И еще, как по вашему лучше конфиги / докерфайлы образов хранить, в репозитории вместе с файлами проекта или отдельно?
Сложно сказать, зависит от вашего цикла разработки.
Если еще заморочитесь с PHP-FPM контейнером и необходимостью запуска РНР скриптов из-под крон, то можете написать мне и я вам скину простенький консольный скрипт, который будет выполнять PHP файлы. Можно конечно накрутить PHP-CLI в этом же контейнере, но я посчитал это лишним.
Группы на сайте создаются не только сотрудниками «1С-Битрикс», но и партнерами компании. Поэтому мнения участников групп могут не совпадать с позицией компании «1С-Битрикс».