Данная утилита предоставляет набор docker контейнеров для быстрого разворачивание рабочего окружения PHP программиста. Набор программ входящих в состав:
- php 5.2, 5.5, 5.6, 7.0
- MariaDB, PostgreSQL
- Apache SOLR
- Nginx
Так же доступны RVM, NPM и композер. Для смены версии в консоли используется PhpBrew Важно помнить что работа будет происходить не не локальной машине как все привыкли, а на виртуальной машине которая находится у вас на локальной. Это правило влияет на отладку скриптов и запуск комманд(drush, composer и пр). Все комманды должны выполнятся внутри виртуальной машины(т.е. контейнера).
- Устанавливаем на свою ОС docker и docker-compose
- Добавляем в хосты
docker-host
с IP хоста докера. В ОС Linux это 127.0.0.1, для остальных операционных систем можно узнать с помощьюdocker-machine ip default
- Клонируем репозиторий себе на компьютер(для Win и Mac обязательно внутрь директории
C:\User
и/Users
читать) - Отключаем если утановленны nginx, mysql и пр.
- Открываем консоль с Docker и Docker compose в директории данного проекта
- Разворачиваем контейнеры с данными
docker-compose -f docker-compose-datastore.yml up -d
. Если папка проекта названна не enviroment то ко всем коммандамdocker-compose up
следует добавить параметр-p enviroment
- Разворачиваем контейнеры со всем окружением
docker-compose up -d
Первым делом необходимо примонтировать директорию с данными с помощью Samba или SSHFS. Samba подключается по адресу \\IP_DOCKER_HOST\public
. SSHFS подключается с помощью комманды sshfs www-data@127.0.0.1:/srv/www ~/Projects/www-data -p 10022 -oreconnect
.
В контейнере нет понятия локальный хост, т.к. все службы разбиты по разным контейнерам.
Для того что бы посмотреть с какими сервисами имеется связь, достаточно выполнить cat /etc/hosts
внутри контейнера.
Конфигурацию следует
- Забрать последние изменения проекта(
git pull
) - В папке с проектом запустить
docker-compose up -d
- Настройка автоматической синхронизации http://goo.gl/kL2xno
- http://www.sitepoint.com/install-xdebug-phpstorm-vagrant/
- http://randyfay.com/content/remote-command-line-debugging-phpstorm-phpdrupal-including-drush
- http://randyfay.com/node/130
- sshfs www-data@127.0.0.1:/srv/www ~/Projects/www-data -p 10022 -oreconnect
- fusermount -u ~/Projects/www-data
- http://stackoverflow.com/questions/14310339/using-remote-server-in-phpstorm
- http://osxfuse.github.io
- http://debian-help.ru/articles/xhprof-i-xdebug-profilirovanie-profiling-koda-php/
- /srv/www/system/xhprof/xhprof_lib
- /usr/local/lib/php/xhprof_lib
- sudo mount -t cifs //127.0.0.1/public ~/Projects/www-data -o guest,uid=YOU_GROUP,gid=YOU_USER
- sudo umount -l ~/Projects/www-data