Шпаргалка по 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

Полезные ссылки

Тэги:

Тэг в списке: