Шпаргалка по Laradock
Что такое Laradock
Laradock is a full PHP development environment for Docker. It supports a variety of common services, all pre-configured to provide a ready PHP development environment.
Мой вольный перевод:
Laradock - это полноценная среда разработки PHP для Docker. Он поддерживает множество общих служб, все из которых предварительно настроены для предоставления готовой среды разработки на PHP.
Ссылка: http://laradock.io
Начать нужно с одного момента, который можно упустить. Если у вас уже установлен LAMP и другое окружение и запущены службы сервера Apache, Nginx и базы данных, то стандартные порты уже будут соответственно заняты, поэтому в этом случае нужно либо все службы отключить командами:
sudo service mysql stop sudo service apache2 stop ...
либо поменять порты необходимых служб уже внутри контейнера.
Делается это следующим образом. Изначально согласно введения(Introduction) необходимо создать файл .env
из env-example
, в котором будут храниться настройки переменных окружения. Как находить переменные, в которых хранятся номера портов, по которым будет доступ к службам. Информация о названии переменных с портами необходимых служб на стороне хост-машины находится в файле docker-compose.yml
в папке laradock. Для этого нужно перейти в настройки соответствующих контейнеров и в секции ports
посмотреть эти значения.
Например:
- для apache2:
${APACHE_HOST_HTTP_PORT}
- для доступа по протоколу HTTP, ${APACHE_HOST_HTTPS_PORT} - для доступа по протоколу HTTPs; - для nginx:
${NGINX_HOST_HTTP_PORT}
- для доступа по протоколу HTTP,${NGINX_HOST_HTTPS_PORT}
- для доступа по протоколу HTTPs; - для mysql:
${MYSQL_PORT};
- для phpmyadmin: ${PMA_PORT};
- и т.д. ...
Сами значения переменных задаются в файле .env
. Я например выставляю следующие значения, чтобы не было конфликтов портов у служб на хост-машине и внутри контейнера:
- APACHE_HOST_HTTP_PORT=83;
- NGINX_HOST_HTTP_PORT=82;
- MYSQL_PORT=33061;
- PMA_PORT=8080
Таким образом не придётся останавливать службы на хост-машине для того, чтобы запустить локальные сайты в Docker-е.
Следующая переменные на которые нужно обратить особое внимание это APP_CODE_PATH_HOST
, здесь указан путь к папке на хост-машине, которая будет монтироваться внуть контейнера. В переменной APP_CODE_PATH_CONTAINER
указывается путь, который будет являться точкой монтирования внутри контейнера.
Дальше мы уже непосредственно разворачиваем локальные сайты внутри контейнера. Примеры хорошего описания разворачивания локальных сайтов внутри Laradock-а можно найти по этим 2-м ссылкам:
Во всех инструкциях указано, что нужно добавить адреса локальных хостов в файл /etc/hosts
вроде
127.0.0.1 project-1.test 127.0.0.1 project-2.test ...
и т.д. Так вот прописывать эту нужно в файле /etc/hosts
на хост-машине, а не в образе операционной системы внутри контейнера.
Далее в папках:
- ../laradock/nginx/sites/
- ../laradock/apache2/sites/
можно найти примеры конфигурационных файлов с настройками для локальных хостов и потом уже настроить. Для apache2 нужно будет поменять по сути только секции:
- ServerName
- DocumentRoot
- путь в сеции Directory
Для nginx нужно будет поменять
- server_name
- root
Настройка файлов .env в приложениях
В файлах .env
внутри проектов не нужно забывать устанавливать следующие настройки:
DB_HOST=mysql REDIS_HOST=redis QUEUE_HOST=beanstalkd
главным образом DB_HOST=mysql
, то есть название локального адреса сервера mysql внутри контейнера будет mysql