fedi-feed-router/docker/production/docker-compose.yml

130 lines
3 KiB
YAML
Raw Normal View History

2025-08-02 03:22:09 +02:00
services:
app:
image: codeberg.org/lvl0/ffr:latest
# build:
# context: ../..
# dockerfile: docker/production/Dockerfile
container_name: ffr-app
restart: unless-stopped
working_dir: /var/www/html
environment:
- APP_ENV=production
- APP_DEBUG=false
- DB_CONNECTION=mysql
- DB_HOST=db
- DB_PORT=3306
- DB_DATABASE=ffr
- DB_USERNAME=ffr_user
- DB_PASSWORD=ffr_password
- REDIS_HOST=redis
- REDIS_PORT=6379
- CACHE_DRIVER=redis
- SESSION_DRIVER=redis
- QUEUE_CONNECTION=redis
volumes: []
ports:
- "8000:80"
depends_on:
db:
condition: service_healthy
redis:
condition: service_started
networks:
- ffr-network
queue:
image: codeberg.org/lvl0/ffr:latest
container_name: ffr-queue
restart: unless-stopped
working_dir: /var/www/html
environment:
- APP_ENV=production
- APP_DEBUG=false
- DB_CONNECTION=mysql
- DB_HOST=db
- DB_PORT=3306
- DB_DATABASE=ffr
- DB_USERNAME=ffr_user
- DB_PASSWORD=ffr_password
- REDIS_HOST=redis
- REDIS_PORT=6379
- CACHE_DRIVER=redis
- SESSION_DRIVER=redis
- QUEUE_CONNECTION=redis
command: ["php", "artisan", "horizon"]
depends_on:
db:
condition: service_healthy
redis:
condition: service_started
networks:
- ffr-network
scheduler:
image: codeberg.org/lvl0/ffr:latest
container_name: ffr-scheduler
restart: unless-stopped
working_dir: /var/www/html
environment:
- APP_ENV=production
- APP_DEBUG=false
- DB_CONNECTION=mysql
- DB_HOST=db
- DB_PORT=3306
- DB_DATABASE=ffr
- DB_USERNAME=ffr_user
- DB_PASSWORD=ffr_password
- REDIS_HOST=redis
- REDIS_PORT=6379
- CACHE_DRIVER=redis
- SESSION_DRIVER=redis
- QUEUE_CONNECTION=redis
command: ["sh", "-c", "while true; do php artisan schedule:run --verbose --no-interaction; sleep 60; done"]
depends_on:
db:
condition: service_healthy
redis:
condition: service_started
networks:
- ffr-network
db:
image: docker.io/library/mysql:8.0
container_name: ffr-db
restart: unless-stopped
environment:
- MYSQL_DATABASE=ffr
- MYSQL_USER=ffr_user
- MYSQL_PASSWORD=ffr_password
- MYSQL_ROOT_PASSWORD=root_password
volumes:
- db_data:/var/lib/mysql
ports:
- "3306:3306"
healthcheck:
test: ["CMD", "mysqladmin", "ping", "-h", "localhost", "-u", "ffr_user", "-pffr_password"]
timeout: 5s
retries: 5
interval: 3s
start_period: 30s
networks:
- ffr-network
redis:
image: docker.io/library/redis:7-alpine
container_name: ffr-redis
restart: unless-stopped
volumes:
- redis_data:/data
networks:
- ffr-network
networks:
ffr-network:
driver: bridge
volumes:
db_data:
driver: local
redis_data:
driver: local