Деплой Laravel в Docker
Структура проекта
version: '3.8'
services:
app:
build: ./docker/php
volumes:
- .:/var/www/html
nginx:
image: nginx:alpine
ports:
- "80:80"
volumes:
- ./docker/nginx:/etc/nginx/conf.d
- .:/var/www/html
mysql:
image: mysql:8.0
environment:
MYSQL_ROOT_PASSWORD: secret
MYSQL_DATABASE: laravel
redis:
image: redis:alpine
queue:
build: ./docker/php
command: php artisan queue:work
scheduler:
build: ./docker/php
command: sh -c "while true; do php artisan schedule:run; sleep 60; done"
Важные моменты
Используйте переменные окружения (.env).
Не храните секреты в образе.
Настройте volumes для persistent данных.
Используйте healthchecks.
Настройте бэкапы базы отдельным контейнером или скриптом.