рУССКИЙ
ИДИ НАХУЙ

Сотни авторов по интернету пишут о преимущестах контейнеризации процесса разработки будь то 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.

Успешная установка! Данные команды были проверены под чистой виртуалкой. Пишите в комменты при возникновении проблем.

Виталик

пн, 03/09/2020 - 20:27

Если у вас ошибка [UnexpectedValueException] Could not parse version constraint –verbose: Invalid version string "–verbose" Замените composer create-project drupal-composer/drupal-project:8.x-dev docroot --stability dev –verbose На composer create-project drupal-composer/drupal-project:8.x-dev some-dir --no-interaction

Руслан

вт, 03/31/2020 - 09:11

Похоже, в статье опечатка. Правильный вариант: --verbose

Руслан

вт, 03/31/2020 - 09:12

Большое спасибо за статью)

Добавить комментарий

Содержимое данного поля является приватным и не предназначено для показа.
  • HTML-теги не обрабатываются и показываются как обычный текст
  .oooooo..o  oooooo   oooooo     oooo   .ooooo.                                .ooo   
d8P' `Y8 `888. `888. .8' d88' `8. .88'
Y88bo. `888. .8888. .8' Y88.. .8' .oooooooo oo.ooooo. d88'
`"Y8888o. `888 .8'`888. .8' `88888b. 888' `88b 888' `88b d888P"Ybo.
`"Y88b `888.8' `888.8' .8' ``88b 888 888 888 888 Y88[ ]88
oo .d8P `888' `888' `8. .88P `88bod8P' 888 888 `Y88 88P
8""88888P' `8' `8' `boood8' `8oooooo. 888bod8P' `88bod8'
d" YD 888
"Y88888P' o888o
Введите код, изображенный в стиле ASCII-арт.
рУССКИЙ
ИДИ НАХУЙ