Разворачиваем приложение Laravel с Docker

Docker позволяет разворачивать окружения посредством контейнеров.
Рассмотрим этапы разворачивания приложения Laravel в виртуальной среде Docker.

1. Установка Docker

Скачиваем установщик с официального сайта Docker.
Для Windows 10 x64 Pro, Enterprice, Education подойдет обычная версия (возможно отдельно понадобится включить Hyper-V). Для других систем Windows придется скачать Docker Toolbox, который включает в себя программу виртуализации VirtialBox.

2.1. Начало работы с Docker Toolbox

После установки в VirtualBox будет создан образ рабочей виртуальной машины, которой по умолчанию будет доступна папка C:\\Users. 
Команды Docker будут выполняться из консоли Docker Quikstart Terminal.

2.2. Начало работы с Docker

Команды Docker после установки будут доступны в любом месте из консоли.

3. Подключаем образы для Docker

Будем использовать образы, которые предоставляет Laradock
Перейдем в папку проекта и подключим файлы из библиотеки, выполнив команду
git submodule add https://github.com/Laradock/laradock.git
Затем создадим копию файла конфигурации
cp env-example .env
В файле конфигурации .env установим значения для подключения к базе данных (на примере MySQL).
MYSQL_VERSION=5.7
MYSQL_DATABASE=homestead
MYSQL_USER=root
MYSQL_PASSWORD=root
MYSQL_PORT=3306
MYSQL_ROOT_PASSWORD=root
MYSQL_ENTRYPOINT_INITDB=./mysql/docker-entrypoint-initdb.d
После подключение будет доступно с локального хоста через Workbench с указанными данными.

4. Разворачивание контейнеров

Развернем контейнеры Docker с помощью команды
docker-compose up -d nginx mysql redis workspace 
Если вы используете Docker Windows, то сайт будет сразу доступен по адресу localhost.
Для Docker Toolbox выполните команду
docker-machine ip default 
Сайт будет доступен по указанному IP (адресу) - http://192.168.99.100.

5. Изменяем конфигурацию проекта Laravel

Посмотрим названия контейнеров Docker с помощью команды
docker ps
Далее изменим файл .env проекта Laravel, в котором укажем DB_HOST= laradock_mysql_1 (соответствует названию контейнера). Аналогично изменить настройки Redis.

6. Часто используемые команды Docker

Сборка контейнера

docker-compose build [--no-cache] <название контейнера>

Запуск контейнера

docker-compose up [-d] <название контейнера>

Запуск нескольких контейнеров

docker-compose up [-d] <названия контейнеров>
Пример:
docker-compose up [-d] nginx mysql redis workspace

Остановка всех контейнеров

docker-compose down

Остановка конкретного контейнера

docker-compose down <название контейнера>

Удаление контейнера

docker-compose rm <название контейнера>

Выполнение команд php (при запущенном контейнере workspace)

docker-compose exec workspace bash

Выполнение команд mysql (при запущенном контейнере mysql)

docker-compose exec mysql bash

Комментарии

Популярные сообщения