services: cache: image: redis:4-alpine restart: unless-stopped healthcheck: test: ["CMD", "redis-cli", "ping"] interval: 10s timeout: 5s retries: 5 database: image: mysql:8.0-oracle restart: unless-stopped ports: - "3306:3306" volumes: - "./docker/database/:/docker-entrypoint-initdb.d/" - "./docker/database/mysql:/var/lib/mysql" environment: MYSQL_ALLOW_EMPTY_PASSWORD: "yes" MYSQL_DATABASE: "fleetbase" healthcheck: test: ["CMD", "mysqladmin", "ping", "-h", "localhost"] interval: 10s timeout: 5s retries: 5 socket: image: socketcluster/socketcluster:v17.4.0 platform: linux/amd64 restart: unless-stopped ports: - "38000:8000" environment: SOCKETCLUSTER_WORKERS: 10 SOCKETCLUSTER_BROKERS: 10 # SOCKETCLUSTER_OPTIONS can be set via docker-compose.override.yml for specific environments # For production, use: SOCKETCLUSTER_OPTIONS: '{"origins":"https://yourdomain.com:*"}' # For development, use: SOCKETCLUSTER_OPTIONS: '{"origins":"http://localhost:*"}' scheduler: image: fleetbase/fleetbase-api:latest command: ["go-crond", "--verbose", "root:./crontab"] restart: unless-stopped environment: DATABASE_URL: "mysql://root@database/fleetbase" QUEUE_CONNECTION: redis CACHE_DRIVER: redis CACHE_PATH: /fleetbase/api/storage/framework/cache CACHE_URL: tcp://cache REDIS_URL: tcp://cache depends_on: - database - cache queue: image: fleetbase/fleetbase-api:latest command: ["php", "artisan", "queue:work"] restart: unless-stopped healthcheck: test: ["CMD", "php", "artisan", "queue:status"] interval: 30s timeout: 10s retries: 3 environment: DATABASE_URL: "mysql://root@database/fleetbase" QUEUE_CONNECTION: redis CACHE_DRIVER: redis CACHE_PATH: /fleetbase/api/storage/framework/cache CACHE_URL: tcp://cache REDIS_URL: tcp://cache depends_on: - database - cache console: image: fleetbase/fleetbase-console:latest ports: - "4200:4200" volumes: - ./console/fleetbase.config.json:/usr/share/nginx/html/fleetbase.config.json application: image: fleetbase/fleetbase-api:latest volumes: - ./api/.env:/fleetbase/api/.env environment: ENVIRONMENT: development DATABASE_URL: "mysql://root@database/fleetbase" QUEUE_CONNECTION: redis CACHE_DRIVER: redis CACHE_PATH: /fleetbase/api/storage/framework/cache CACHE_URL: tcp://cache REDIS_URL: tcp://cache SESSION_DOMAIN: localhost BROADCAST_DRIVER: socketcluster MAIL_FROM_NAME: Fleetbase APP_NAME: Fleetbase LOG_CHANNEL: daily REGISTRY_HOST: https://registry.fleetbase.io REGISTRY_PREINSTALLED_EXTENSIONS: 'true' OSRM_HOST: https://router.project-osrm.org depends_on: - database - cache - queue httpd: build: context: . dockerfile: docker/httpd/Dockerfile ports: - "8000:80" depends_on: - application