
Сотни авторов по интернету пишут о преимущестах контейнеризации процесса разработки будь то docker или vagrant.
Я пользовался вагрантом на нескольких проектах. В принципе было удобно, но меня смущал тот факт что у меня паралелльно запущена полноценная ОС! Которая к тому-же весит около 10-15Гб. Было это в те времена, когда SSD еще были не столь доступными. Стоит присмотреться к докеру, тк каждый контейнер представляет собой отдельно запущенную ОС с софтом. Контейнеры линкуются между собой портами и тем самым мы получаем рабочую систему для разработки.
До этого времени я использовал докер для приложений на питоне и друпал 7. В данной статье рассматривается возможность запустить проект на друпал 8 под докером с установкой всех необходимых для начальной работы программ. В сети есть куча докер-композ для друпал 8. Но брать их и начать использовать это не мой путь. Мне интересно было разобраться в работе докера и самому собрать удобный для меня конфиг.
Я сначала попробовал все что было в сети, но меня не устроило по каким-то причинам. Конечно, сравниться с конфига woodby сложно, но когда функционал не должен быть избыточным и функционал варьируется от проекта к проекту.
Данный материал я буду настраивать и тестировать под виртуальной машиной в Virtualbox. Тк, на локалке у меня уже все настроенно.
Я взял за основу дистрибутив Lubuntu с LXQT, потому что он легковесный.
Для начала нам понадобится PHP7.2 с дополнительными чтоб запустить Composer.
sudo apt-get install php7.2 php7.2-cli php7.2-common php7.2-curl php7.2-xml php7.2-gd php7.2-mbstring
Установка Composer. Его можно установить как локально, для каждого проекта в зависимости от нужной версии. Так и глобально.
Больше о композере и о его установке можно прочитать по ссылке
https://getcomposer.org/download/
Следуем совету по установке в текущую директорию:
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" php -r "if (hash_file('sha384', 'composer-setup.php') === 'a5c698ffe4b8e849a443b120cd5ba38043260d5c4023dbf93e1558871f1f07f58274fc6f4c93bcfd858c6bd0775cd8d1') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;" sudo php composer-setup.php --install-dir=/usr/local/bin --filename=composer php -r "unlink('composer-setup.php');"
Теперь проверим установился ли композер:
$ composer --version
Можно убедиться что он установлен и работает.
Далее нам нужно установить Docker и Docker-compose.
По докеру следуем по инструкции с официального сайта.
https://docs.docker.com/install/linux/docker-ce/ubuntu/
$ sudo apt-get update $ sudo apt-get install \ apt-transport-https \ ca-certificates \ curl \ gnupg-agent \ software-properties-common
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
$ sudo add-apt-repository \ "deb [arch=amd64] https://download.docker.com/linux/ubuntu \ $(lsb_release -cs) \ stable" sudo apt-get update sudo apt-get install docker-ce docker-ce-cli containerd.io
После установки в подключаниях появится подключение с именем docker0.
Проверим что докер установлен.
$ docker --version
Теперь установим Docker-compose согласно инструкции с официального сайта:
https://docs.docker.com/compose/install/
sudo curl -L "https://github.com/docker/compose/releases/download/1.24.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose sudo chmod +x /usr/local/bin/docker-compose
Проверяем команду чтоб удостовериться что все работает.
$ docker-compose --version
Добавляем пользователя в группу docker чтоб не запускать через sudo. По ссылке больше информации https://docs.docker.com/install/linux/linux-postinstall/
$ sudo usermod -aG docker $USER $ newgrp docker
Клонируем репозиторий себе на локалку
https://github.com/onesixromcom/docker_drupal8
$ git clone https://github.com/onesixromcom/docker_drupal8.git
Для развертывания друпала я выбрал пакет drupal-composer.
Страница проекта https://github.com/drupal-composer/drupal-project
Из папки репозитория запускаем:
$ cd docker_drupal8 $ composer create-project drupal-composer/drupal-project:8.x-dev docroot --stability dev –verbose
Создаем папку, чтоб установщик друпала не ругался
$ mkdir ./docroot/config/sync -p
И последняя команда скачает контейнеры, запустит скрипты к каждому контейнеру и поднимет контейнеры.
$ docker-compose up -d --build
Проверяем что все контейнеры работают и сайт доступен по адресу: http://127.0.0.1:3000/
Хост базы указываем db, так как назван контейнер в файле docker-compose.yml
База database.
Пользователь drupal.
Пароль drupal.
Успешная установка! Данные команды были проверены под чистой виртуалкой. Пишите в комменты при возникновении проблем.
Добавить комментарий