x-app-volumes: &app-volumes - ./.env:/var/www/html/.env:ro - storage:/var/www/html/storage - database:/var/www/html/database services: app: build: context: . target: app secrets: - composer_auth environment: CONTAINER_ROLE: app RUN_MIGRATIONS: "true" volumes: *app-volumes restart: unless-stopped web: build: context: . target: nginx secrets: - composer_auth ports: - "${APP_PORT:-8080}:80" volumes: - storage:/var/www/html/storage:ro depends_on: - app restart: unless-stopped queue: build: context: . target: app secrets: - composer_auth command: ["php", "artisan", "queue:work", "--sleep=1", "--tries=1", "--timeout=0"] environment: CONTAINER_ROLE: queue volumes: *app-volumes depends_on: - app restart: unless-stopped scheduler: build: context: . target: app secrets: - composer_auth command: ["php", "artisan", "scheduler:work"] environment: CONTAINER_ROLE: scheduler volumes: *app-volumes depends_on: - app restart: unless-stopped octane: profiles: ["octane"] build: context: . target: octane secrets: - composer_auth command: ["php", "artisan", "octane:start", "--server=frankenphp", "--host=0.0.0.0", "--port=8000"] environment: CONTAINER_ROLE: octane OCTANE_SERVER: frankenphp ports: - "${OCTANE_PORT:-8000}:8000" volumes: *app-volumes depends_on: - app restart: unless-stopped rust-executor: profiles: ["rust-executor"] build: context: ./executor environment: RUST_LOG: "${GWM_RUST_EXECUTOR_LOG_LEVEL:-info}" GWM_EXECUTOR_BIND: "0.0.0.0:8787" expose: - "8787" restart: unless-stopped volumes: storage: database: secrets: composer_auth: environment: COMPOSER_AUTH