Предлагаю обсудить сборку и эксплуатацию контейнеров docker для Битрикс. У меня лично, пока, нет необходимости в таких контейнерах. Но думаю что тема актуальна. Если есть какой то опыт, поделись пожалуйста.
Я пока при сайто-разработке не увидел смысла в docker. Может у кого есть опыт, поделитесь? Для каких целей вы используете docker в разработке сайтов/корпорталов на БУС/Б24?
Ну я бы такое не стал в продакшн использовать. Слишком много всего. Подумываю собрать полный аналог VMBitrix 7.0.0 На основе во этого https://github.com/phusion/baseimage-docker Я уже собирал для "1С продакшн" серверов контейнеры на основе этого образа. Качественно получается. Вот хочу полный аналог VMBitrix 7.0.0 с поддержкой всех функций. Толь ко тестировать в продакшене, кроме меня самого, некому.
Коллеги кому интересен такой проект ??? Отзовитесь ???
Андрей Николаев написал: Подумываю собрать полный аналог VMBitrix 7.0.0
Цитата
overpod1 написал: Коллеги кому интересен такой проект ??? Отзовитесь ???
Наверное сначала стоит себе и коллегам объяснить зачем это нужно вообще. По мне так это звучит как докер ради докера, без какой либо практической пользы.
Объясняю выгоду со стороны разработчика: Имеется куча проектов, которые необходимо постоянно держать у себя и дорабатывать. Если использовать для этой цели виртуалку - она жрет гораздо больше ресурсов, docker по-сути это контейнер вашей ОС (если используется *nix система), в котором запускаются отдельные процессы. Представьте что у вас 20 проектов. Для каждого проекта вы будете поднимать виртуалку? Docker позволяет иметь например 20 папок, а внутри каждой папки - файлы проекта и файл контейнера, который вы можете запустить одной командой. И у вас поднимутся необходимые сервисы (apache, nginx, mysql и список можно продолжать). И после этого вы можете зайти на http://localhost/ и увидеть там свою площадку. Вам не нужно заходить на Ip виртуалки, не нужно хранить огромные файлы hdd виртуалок, не нужно выделять ресурсы процессора/оперативки на виртуалку в которой нужно всего-лишь запустить пару сервисов. Виртуализация - это избыточно. Запуск docker контейнера занимает меньше секунды, если у вас уже имеются образы на машине.
Игорь Горгуль, образы в KVM и образы в docker работают по-разному. В docker есть основной образ (например ubuntu) и при скачивании, например, образа mysql он сверяет какие необходимо применить правки (аля id коммита в git'е) - и применяет только их, а не скачивает полный образ. Есть всего несколько основных образов, все остальные - это грубо говоря diff от этого основного образа, либо от образа, являющегося ближайшим родственником. Опять же - KVM запустит несколько копий операционной системы со всеми процессами, а docker - запустит контейнеры на одном ядре. Ядро во всех контейнерах будет то, которое используется в операционной системе хоста (если вы под *nix). Попробуйте запустить на своей машине 20 виртуалок в KVM , docker с лёгкостью это выдержит. Попробуйте уделить часок и потрогать его ручками - только после этого понимаешь плюсы.
Игорь Горгуль, ну так вы сами написали "Лучше клонировать виртуальные машины/делать из них шаблоны." Мы же обсуждаем вопрос использования Docker, верно? Я описал преимущества docker => вы сказали что есть образы для KVM => я объяснил преимущество запуска контейнеров по сравнению с запуском виртуалок. Поэтому я и сравнил запуск 20 контейнеров и 20 машин, для определенного юзкейса.
bitrix достаточно консервативен и имеет единообразное окружение. почему нельзя просто настроить N-проектов в одной виртуалке? зачем городить под каждую отдельный образ?
Николай Чучадеев написал: Объясняю выгоду со стороны разработчика: Имеется куча проектов, которые необходимо постоянно держать у себя и дорабатывать. Если использовать для этой цели виртуалку - она жрет гораздо больше ресурсов, docker по-сути это контейнер вашей ОС (если используется *nix система), в котором запускаются отдельные процессы. Представьте что у вас 20 проектов. Для каждого проекта вы будете поднимать виртуалку? Docker позволяет иметь например 20 папок, а внутри каждой папки - файлы проекта и файл контейнера, который вы можете запустить одной командой. И у вас поднимутся необходимые сервисы (apache, nginx, mysql и список можно продолжать). И после этого вы можете зайти на http://localhost / и увидеть там свою площадку. Вам не нужно заходить на Ip виртуалки, не нужно хранить огромные файлы hdd виртуалок, не нужно выделять ресурсы процессора/оперативки на виртуалку в которой нужно всего-лишь запустить пару сервисов. Виртуализация - это избыточно. Запуск docker контейнера занимает меньше секунды, если у вас уже имеются образы на машине.
Есть решения гораздо проще. Просто VM битрикса немного не готова для таких действий. Если вы держите виртуалки с проектами в default, то проще имхо виртуалке выдать 2 диска - один подмонтировать на /, второй на /home/bitrix/. Соответственно дергать будете то, что вам нужно. У меня сделано так: Контейнеры в LXC (3 тестовых, основной) У каждого контейнера папка /home/bitrix/www/bitrix/backup смонтирована отдельным образом. Все бекапы делаются только основного диска (считай проект + пустой centos лишние мегабайт 600) виртуалки. Образ бекапа периодически забирается по rsync. Нужно поднять новую виртуалку с текущего образа - backup/restore со сменой ip/mac (на ssd - порядка 2-3 минут - образ 12-15 Гб). Нужно вынести бекапы наружу - выносим образы с бекапом в папку внешнего хранилища и прописываем в кроне на backup.php ionice = 7. По ресурсам - LXC = в общем-то твое окружение. Лимиты меняются на лету.
Про использование docker в качестве локального окружения для разработки https://verstaem.com/devops/docker-php-development/ Как у программиста на своем ноуте запустить сайт примерно в таком же окружении что и на проде
Николай Чучадеев написал: Представьте что у вас 20 проектов. Для каждого проекта вы будете поднимать виртуалку?
допустим нужно разное окружение для 20 проектов - это понятно. но зачем запускать все 20 виртуалок - вам надо сразу 20 проектов одновременно править и модифицировать?
время запуска виртуалки на фоне создания и восстановления из бекапа bitrix-сайта не существенно. а это придется делать постоянно в любом случае чтобы получать актуальную копию с продакшена.
One kid wrote everything in 1C, both the client and the server, saying what he liked, convenient, readable. He was later taken to Skolkovo.
Есть решения гораздо проще. Просто VM битрикса немного не готова для таких действий. Если вы держите виртуалки с проектами в default, то проще имхо виртуалке выдать 2 диска - один подмонтировать на /, второй на /home/bitrix/. Соответственно дергать будете то, что вам нужно. У меня сделано так: Контейнеры в LXC (3 тестовых, основной) У каждого контейнера папка /home/bitrix/www/bitrix/backup смонтирована отдельным образом. Все бекапы делаются только основного диска (считай проект + пустой centos лишние мегабайт 600) виртуалки. Образ бекапа периодически забирается по rsync. Нужно поднять новую виртуалку с текущего образа - backup/restore со сменой ip/mac (на ssd - порядка 2-3 минут - образ 12-15 Гб). Нужно вынести бекапы наружу - выносим образы с бекапом в папку внешнего хранилища и прописываем в кроне на backup.php ionice = 7. По ресурсам - LXC = в общем-то твое окружение. Лимиты меняются на лету.
это очень похоже на велосипед. в данном случае наверное даже докер будет проще.
One kid wrote everything in 1C, both the client and the server, saying what he liked, convenient, readable. He was later taken to Skolkovo.
Alorian написал: Про использование docker в качестве локального окружения для разработки https://verstaem.com/devops/docker-php-development/ Как у программиста на своем ноуте запустить сайт примерно в таком же окружении что и на проде
Цитата
В статье я больше буду акцентироваться именно на windows системе (в примере все работает на windows 10)
докер под виндой тоже работает в виртуалке в чем сакральный смысл данного способа по сравнению с bitrixvm ?
Цитата
Я часто открываю сразу несколько проектов и все открытые проекты не должны конфликтовать, то есть например у меня открыто два окна phpstorm в одном ведется разработка проекта example.com, во втором ведется разработка test.ru, и для каждого из этих проектов одновременно должны работать два локальных сайта my.example.com и my.test.ru.
чувак похоже инопланетянин с двумя головами, каждая из которых может работать независимо над своим проектом.
Что за шизофрения в треде? Четыре сообщения с двух разных аккаунтов в течении 20 минут.
Цитата
Роман Семёнов написал: докер под виндой тоже работает в виртуалке
Да ладно? Ну пойду удалю статью тогда, хрен ли.
Цитата
Роман Семёнов написал: в чем сакральный смысл данного способа по сравнению с bitrixvm ?
В статье в самом начале об этом:
Цитата
Кроме того желательно понимать зачем вам вообще локальное окружение именно на докер. Для большинства людей хватит виртуалок, обычного удаленного хостинга или любых других уже готовых сборок типа denver, xampp, open-server и т.д. Их достаточно установить обычным инсталлером винды и у вас будут работать локальные сайты. Для разработки большинства проектов ничего больше и не нужно. Пробовать организовать локальное окружение на докере стоит только если вы понимаете зачем это делаете, например вы хотите построить процесс continous integration, или у вам нужны программы определенных версий, ну либо если вам нравится сам докер и принципы его работы, как по мне тоже существенная причина