Этот один из вариантов организации окружения для существующих приложений на фреймворке Laravel с пакетом Sail, который подходит для разработки и эксплуатации в production
.
В окружении:
- PHP-FPM
8.2
с пользователемsail
, процессы тоже запускаются от этого пользователя - Nginx
1.21.6
- MySQL
8
с созданием базы данныхtest
Перед разворачиванием необходимо создать
.env
с нужными значениями, пример в.env.example
.
Для инициализации нового приложения нужно следовать документации Sail, а затем можно взять конфигурацию из репозитория. Либо инициализировать новый проект на новом окружении из репозитория:
# поднимаем инфраструктуру
$ docker compose up -d
# создаем проект
$ docker compose exec -u "$(id -u):$(id -g)" php composer create-project laravel/laravel example-app
# перемещаем содержимое директории example-app в корень
$ docker compose exec -u "$(id -u):$(id -g)" php mv ./example-app/* .
# все что не переместилось из директории example-app перемещаем в корень руками, совмещая файлы
Для инициализации существующего приложения с представленным окружением достаточно:
$ docker compose run --rm -u "$(id -u):$(id -g)" php composer install