services: app: image: codeberg.org/lvl0/ffr:v1.0.0-rc1 container_name: ffr-app restart: unless-stopped environment: - APP_ENV=production - APP_DEBUG=false - APP_KEY=${APP_KEY} - APP_URL=${APP_URL} - DB_CONNECTION=mysql - DB_HOST=db - DB_PORT=3306 - DB_DATABASE=ffr - DB_USERNAME=ffr_user - DB_PASSWORD=${DB_PASSWORD} - REDIS_HOST=redis - REDIS_PORT=6379 - CACHE_DRIVER=redis - SESSION_DRIVER=redis - QUEUE_CONNECTION=redis - TELEGRAM_BOT_TOKEN=${TELEGRAM_BOT_TOKEN} - TELEGRAM_CHANNEL_ID=${TELEGRAM_CHANNEL_ID} ports: - "8000:80" depends_on: db: condition: service_healthy redis: condition: service_started networks: - ffr-network db: image: docker.io/library/mysql:8.4 container_name: ffr-db restart: unless-stopped environment: - MYSQL_DATABASE=ffr - MYSQL_USER=ffr_user - MYSQL_PASSWORD=${DB_PASSWORD} - MYSQL_ROOT_PASSWORD=${DB_ROOT_PASSWORD} volumes: - db_data:/var/lib/mysql healthcheck: test: ["CMD", "mysqladmin", "ping", "-h", "localhost", "-u", "ffr_user", "-p${DB_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