Вы здесь

Разверните окружение для локальной разработки с помощью Docker (1.12)

Всем привет,

Мы опубликовали инструкции на гитхабе как поднять локальное окружения для разработки на друпале. Пока что только Drupal 7 и 8. Бандл состоит из трех контейнеров: Nginx, PHP7 и MariaDB. Со временем будем добавлять дополнительные контейнеры (PHP 5.6, Redis/MariaDB, Solr, ...) и обновлять существующие контейнеры.

http://docker4drupal.org/

4
25
14.07.2016 - 12:03

Комментарии

Аватар пользователя Artu
Artu – 14.07.2016 - 19:45

Объясните, пжл, в чем преимущества/отличия Docker перед Ansible для Drupal разработичка?
https://www.drupalvm.com/

Аватар пользователя adubovskoy
adubovskoy – 14.07.2016 - 23:58

Если у вас основная os - linux, то основное преимущество -- скорость. Если не linux - то скоро будет docker native для osx и win.

По сравнению с средой на базе vagrant (vbox/wmware) , докер как гоночный авто по сравнению с черепашкой) Пока вы ждете boot вашего vagrant образа, разработчики с docker уже вовсю шарятся по поднятым проектам) Я очень быстро с вагранта на докер пересел из-за этого.

Аватар пользователя orb
orb – 15.07.2016 - 10:44

Не соглашусь про скорость.
В теории скорость НЕМНОГО выше, но все упирается в настройку самого окружения PHP+MySQL+Apache.

У меня локально есть 3 докера с разными настройками, одни из которых я делал сам, два другие общественные репозитории. И есть virtualBOX который я настроил года 3 назад и там куча софта кроме вебсервера (GUI, node.js, compass, ruby и т.д.).
Месяц назад я делал сайт на Комерце и начал делать в докере - все ужасно тупило. Запустил этот же сайт в VirtualBox и работает все напорядок быстрее и даже быстрее Патруля. Замеров я не делал, но админка работает в 2-3 раза быстрее, например, создание полей 3-5 секунд, против 1-2 секунды (на глаз).

Пока не разбирался в чем проблема, но удивился очень сильно, потому что virtualBox выделил всего 1 ядро и память около 1Гб в то время как для Докера доступны все ресурсы.

Аватар пользователя Chi
Chi – 15.07.2016 - 11:19

Речь шла про скорость запуска рабочего окружения. Контейнеры стартуют мгновенно, а в случае с VM можно успеть чай попить. К тому же контейнеры в отличии от VM не потребляют много памяти и процессорного времени на холостом ходу. Поэтом их можно запускать одновременно десятками.

P.S. Если data volumes монтировать на SSD диск, то Друпал будет работать процентов на 30 быстрее.

Аватар пользователя orb
orb – 16.07.2016 - 17:32

для локального сервера эти параметры ниже плинтуса:
- скорость запуска
- запуск 10 контейнеров
- потребление памяти и процессорного времени (разве что на ноутбуках актуально). У меня virtualbox отьедает 1Гб постоянно, это не критично для меня. Нагрузка на холостом ходу почти нулевая (только что проверил, висит 3 службы виртуалбокса потребление CPU = 0 у всех)

Аватар пользователя adubovskoy
adubovskoy – 16.07.2016 - 22:01

Помимо разницы в скорости старта и потребления памяти, вы резервируете место.
Если образ файловой системы типовой под vagrant занимает 5 Гб, то 10 изолированных проектов - уже 50гб ушло в никуда. В случае если ssd винт, и это ноут без второго винта -- уже чувствительно. Тогда как docker не резервирует место вообще.

Аватар пользователя adubovskoy
adubovskoy – 15.07.2016 - 13:29

host os, на которой запускаете какая? какая fs?
На Red Hat семействе бывают проблемы с драйвером device mapper, это отдельно надо лечить.

Аватар пользователя orb
orb – 16.07.2016 - 17:34

Хост - Минт на ext4 hdd
Сервер 1 - xubuntu на виртуал боксе
Сервер 2 - дебиан на докере

Аватар пользователя adubovskoy
adubovskoy – 16.07.2016 - 22:02

Хм, навскидку не знаю в чем может быть дело, надо копать.(

Аватар пользователя Alan Bondarchuk
Alan Bondarchuk – 17.07.2016 - 11:43

пару месяцев назад это как раз был vboxfs (если на винде или маке поднимали) который подтупливает ну и еще зависит от конкретного контейнера и настроек в нем. и может сильно тормозить если на сайте есть 404 файлы и нжинкс их все пропускает через пхп дергая друпал, а комерц достаточно тяжелый

Аватар пользователя Alan Bondarchuk
Alan Bondarchuk – 16.07.2016 - 21:22

docker под мак уже на xhyve - больше никакого виртуалбокса с его тормозной vboxfs с которой приходилось прикручивать nfs чтоб оно шустро работало. теперь из коробки шустро

и тут докер на основе alpine который в разы меньше любого дистра линукса в вируталке, если не ошибаюсь дистрибутив альпин версит 50мб

ну и плюс я на ходу без каких то настроек парой строчек в конфиге могу поставить мемкеш, редис, солр в отдельных контейнерах, и не стартовать их когда не нужно, либо заменить версию.
ну и при переустановке системы развернуть свою среду парой строчек, даже с 3G, выкачав alpine - не проблема

собственно докер используют и в продакшене особенно полезно в микросервисной архитектуре

Аватар пользователя Pavel Prischepa
Pavel Prischepa – 18.07.2016 - 15:22

Добавили поддержку PHP 5.6, Redis, Memcached. В PHP настроили поддержку Xdebug.
Также переработали init скрипт для MariaDB. За основу взят официальный docker-entrypoint.

Аватар пользователя Alan Bondarchuk
Alan Bondarchuk – 22.07.2016 - 12:38

совсем небольшой размер образов, в db уже база загружена от проекта, в app его файлы :)

Аватар пользователя Artu
Artu – 24.07.2016 - 14:22

Два вопроса:
1. Планируете добавить node.js?
2. Что порекомендуете для production сервера?

Аватар пользователя chingis
chingis – 25.07.2016 - 06:08
  1. Уже работаем над этим
  2. Всмысле какого хостинг провайдера? AWS пожалуй будет самым стабильным
Аватар пользователя Artu
Artu – 26.07.2016 - 15:36
  1. Любого вообще.
    DO например.
Аватар пользователя chingis
chingis – 26.07.2016 - 14:18

Небольшой апдейт:
1. Теперь по умолчанию идут контейнер с мейл кэтчером (чтобы просматривать всю исходящую почту) и phpMyAdmin
2. Можно опционально разворачивать контейнеры с redis/memcached и apache solr

P.S. Обновилась инструкция

Аватар пользователя Chi
Chi – 27.07.2016 - 15:43

Теперь по умолчанию идут контейнер с мейл кэтчером (чтобы просматривать всю исходящую почту)

В архиве всё ещё mailhog.

Аватар пользователя chingis
chingis – 27.07.2016 - 18:13

мы позже заменили мейл кэтчер на мэйлхог по многочисленным просьбам, но в принципе вернуть проблемы не составляет, нужно просто имя докер образа заменить

Аватар пользователя seoyuzer
seoyuzer – 07.09.2016 - 12:38

Привет!
Ребят подскажите правильно ли я все делаю, установлен на windows 7 64x docker toolbox. Открываю консоль, mkdir myprogect далее cd myprogect, скачиваю yml файл в текущию директорию и выполняю docker-compose up -d. Но после этих действий сайт по localhost:8000 не открывается, т.е nginx не работает. Я новичек в docker, подскажите что ещё нужно сделать чтобы окружение заработало? Спасибо!

Аватар пользователя pr0g
pr0g – 10.09.2016 - 21:46

Выполни:

docker-compose ps

В статусах все должно быть в Up.
localhost это для линукс систем, а для docker toolbox адрес пишется при старте консоли Docker Quickstart Terminal. В моем случае это адрес 192.168.99.100

Аватар пользователя pr0g
pr0g – 10.09.2016 - 21:41

Привет!
Не стартует сервер MariaDB. В лога пишет следующее:

2016-09-10 18:34:39 139808351751208 [Note] mysqld (mysqld 10.1.14-MariaDB) starting as process 1 ...
2016-09-10 18:34:39 139808351751208 [Warning] Setting lower_case_table_names=2 because file system for /var/lib/mysql/ is case insensitive
2016-09-10 18:34:39 139808351751208 [Note] InnoDB: Using mutexes to ref count buffer pool pages
2016-09-10 18:34:39 139808351751208 [Note] InnoDB: The InnoDB memory heap is disabled
2016-09-10 18:34:39 139808351751208 [Note] InnoDB: Mutexes and rw_locks use GCC atomic builtins
2016-09-10 18:34:39 139808351751208 [Note] InnoDB: Memory barrier is not used
2016-09-10 18:34:39 139808351751208 [Note] InnoDB: Compressed tables use zlib 1.2.8
2016-09-10 18:34:39 139808351751208 [Note] InnoDB: Using Linux native AIO
2016-09-10 18:34:39 139808351751208 [Note] InnoDB: Using generic crc32 instructions
2016-09-10 18:34:39 139808351751208 [Note] InnoDB: Initializing buffer pool, size = 1.0G
2016-09-10 18:34:39 139808351751208 [Note] InnoDB: Completed initialization of buffer pool
2016-09-10 18:34:39 139808351751208 [Note] InnoDB: Highest supported file format is Barracuda.
2016-09-10 18:34:39 139808351751208 [Note] InnoDB: 128 rollback segment(s) are active.
2016-09-10 18:34:39 139808351751208 [Note] InnoDB: Waiting for purge to start
2016-09-10 18:34:39 139808351751208 [Note] InnoDB:  Percona XtraDB (http://www.percona.com) 5.6.29-76.2 started; log sequence number 1600759
2016-09-10 18:34:39 139807133231792 [Note] InnoDB: Dumping buffer pool(s) not yet started
2016-09-10 18:34:40 139808351751208 [Note] Plugin 'FEEDBACK' is disabled.
2016-09-10 18:34:40 139808351751208 [ERROR] Could not open mysql.plugin table. Some plugins may be not loaded
2016-09-10 18:34:40 139808351751208 [Note] Recovering after a crash using tc.log
2016-09-10 18:34:40 139808351751208 [ERROR] Can't init tc log
2016-09-10 18:34:40 139808351751208 [ERROR] Aborting
2016-09-10T18:34:40.008103065Z 

Как я понял не создались системные таблицы, но не могу понять как их создать или докер должен был их сам создать.
Пробую на Windows 7 x64 DockerToolbox

Аватар пользователя pr0g
pr0g – 15.09.2016 - 07:20

Проблема решилась следующим образом. В файле docker-compose.yml для mariadb: за комментировал следующие строки:

volumes:
  - ./docker-runtime/mariadb:/var/lib/mysql

т.е. надо просто отключить volumes для MariaDB.

Аватар пользователя seoyuzer
seoyuzer – 16.09.2016 - 15:06

Спасибо помогло! А как drush запускать?