services: app: image: kantorge/yaffa:latest ports: - "80:80" env_file: - .env volumes: - yaffa_storage:/var/www/html/storage depends_on: db: condition: service_healthy restart: unless-stopped networks: - yaffa-network healthcheck: test: ["CMD", "curl", "-f", "http://localhost"] interval: 30s timeout: 10s retries: 3 db: image: mysql/mysql-server:8.0 ports: - '${FORWARD_DB_PORT:-3306}:3306' environment: MYSQL_ROOT_PASSWORD: '${DB_PASSWORD}' MYSQL_ROOT_HOST: '%' MYSQL_DATABASE: '${DB_DATABASE}' MYSQL_USER: '${DB_USERNAME}' MYSQL_PASSWORD: '${DB_PASSWORD}' volumes: - yaffa_db:/var/lib/mysql restart: unless-stopped networks: - yaffa-network healthcheck: test: ["CMD", "mysqladmin", "ping", "-h", "localhost", "-u", "${DB_USERNAME}", "-p${DB_PASSWORD}"] interval: 30s timeout: 10s retries: 3 mailhog: image: mailhog/mailhog ports: - "1025:1025" # SMTP server - "8025:8025" # Web UI container_name: mailhog networks: - yaffa-network scheduler: image: kantorge/yaffa:latest command: php artisan schedule:work env_file: - .env depends_on: db: condition: service_healthy restart: unless-stopped networks: - yaffa-network volumes: yaffa_db: yaffa_storage: networks: yaffa-network: driver: bridge