Docker Compose для Laravel 11 + PostgreSQL 16 + Redis + Horizon Worker

Обновлено: Август 2026 Стек: Laravel 11, PHP 8.3 FPM, PostgreSQL 16, Redis 7, Laravel Horizon Проверено: Production-Ready

Готовый стек 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`.