Docker Compose для Laravel 11 + PostgreSQL 16 + Redis + Horizon Worker
Готовый стек Docker Compose для Laravel 11: контейнер приложения PHP 8.3 FPM, воркер очередей Laravel Horizon, PostgreSQL 16, Redis и Nginx.
Интерактивный генератор под ваши параметры
Параметры подставляются в код в реальном времени
docker-compose.yml
# docker-compose.yml
version: '3.8'
services:
app:
build:
context: .
dockerfile: Dockerfile
container_name: laravel_app
restart: always
volumes:
- ./:/var/www/html
environment:
- DB_CONNECTION=pgsql
- DB_HOST=postgres
- DB_PORT=5432
- DB_DATABASE={{db_name}}
- DB_USERNAME={{db_user}}
- DB_PASSWORD={{db_password}}
- REDIS_HOST=redis
depends_on:
- postgres
- redis
networks:
- app_net
horizon:
build:
context: .
dockerfile: Dockerfile
container_name: laravel_horizon
restart: always
command: php /var/www/html/artisan horizon
volumes:
- ./:/var/www/html
depends_on:
- app
- redis
networks:
- app_net
postgres:
image: postgres:16-alpine
container_name: laravel_postgres
restart: always
environment:
POSTGRES_DB: {{db_name}}
POSTGRES_USER: {{db_user}}
POSTGRES_PASSWORD: {{db_password}}
volumes:
- pg_data:/var/lib/postgresql/data
networks:
- app_net
redis:
image: redis:7-alpine
container_name: laravel_redis
restart: always
volumes:
- redis_data:/data
networks:
- app_net
web:
image: nginx:alpine
container_name: laravel_web
restart: always
ports:
- "80:80"
volumes:
- ./:/var/www/html:ro
- ./docker/nginx.conf:/etc/nginx/conf.d/default.conf:ro
depends_on:
- app
networks:
- app_net
networks:
app_net:
driver: bridge
volumes:
pg_data:
redis_data:
Разбор ключевых директив конфигурации
Техническое обоснование директив и их прямое влияние на процессор (CPU), оперативную память (RAM) и дисковый ввод-вывод (NVMe I/O).
| Директива / Блок | Рекомендуемое значение | Зачем нужно и системное влияние (CPU / RAM / I-O) |
|---|---|---|
horizon service (artisan horizon) |
Laravel Horizon Worker | Запускает отдельный контейнер мониторинга и параллельной обработки асинхронных очередей Redis в фоне. |
Рекомендуемые системные требования VDS под этот стек
Расчет минимальной и оптимальной конфигурации виртуального сервера для стабильной работы без сбоев.
Оптимальный сайзинг: 2-4 vCPU, 4-8 GB RAM, 60 GB NVMe
Расчетная нагрузка: Laravel REST API + очереди Horizon
Timeweb Cloud
2 CPU / 4 GB NVMe
Процессор:
2-4 vCPU
Память RAM:
4-8 GB RAM
Накопитель:
60 GB NVMe
Selectel
2 vCPU / 4 GB RAM
Процессор:
2-4 vCPU
Память RAM:
4-8 GB RAM
Накопитель:
60 GB NVMe
Beget
Turbo 4 GB
Процессор:
2-4 vCPU
Память RAM:
4-8 GB RAM
Накопитель:
60 GB NVMe
Онлайн-утилиты SysKit для проверки этого сервера
Протестируйте корректность применения конфигурации прямо сейчас в один клик.
Частые ошибки при настройке и их решение (FAQ)
Типовые проблемы вебмастеров и сисадминов при внедрении данной конфигурации.
Как выполнить миграции базы данных внутри контейнера?
Выполните команду: `docker compose exec app php artisan migrate --force`.
Рекомендуемые смежные конфигурации
Дополнительные рецепты и калькуляторы для полной оптимизации данного серверного стека.