Базовый проект на Laravel 7 с Docker. Docker влючает в себя сервисы app (php:7.4-fpm), nginx, mysql 5.7 и adminer. После команды git clone требуется выполнить следующие действия:
- docker-compose build
- docker-compose up -d
- docker-compose ps (проверяем, что контейнеры запущены)
- docker-compose exec app ls -l (проект laravel содержится в сервисе app)
- docker-compose exec app composer install
- cp .env.example .env
- docker-compose exec app php artisan key:generate
- docker-compose exec app php artisan config:cache
- localhost:8000 - должна быть стартовая страница Laravel Если вы видете страницу nginx сервиса, то нужно проверить docker-compose logs nginx. В случае, если доступ к папке public будет запрещен (Permission denied), дать разрешения вручную: docker-compose exec nginx chmod 777 /var/www/public либо docker-compose exec app find /var/www -type d -exec chmod 0775 '{}' ;
Настройка БД
- в adminer зайти под пользователем root и создать БД laravel
- docker-compose exec db bash
- mysql -u root -p
- show databases;
- GRANT ALL ON laravel.* TO 'root'@'%' IDENTIFIED BY '12345';
- FLUSH PRIVILEGES;
- exit, exit
- docker-compose exec app php artisan migrate
Если при работе с БД перестает что-то работать, то перезапускаем контейнеры либо очищаем кэш docker-compose exec app php artisan config:cache, docker-compose exec app php artisan config:clear, docker-compose exec app php artisan cache:clear
Готово!