services: web: container_name: kanbangit-web image: kanbangit-app:local build: context: . dockerfile: Dockerfile target: runtime command: nginx restart: unless-stopped ports: - "8080:8080" env_file: - .env.production environment: PHP_FPM_UPSTREAM: php-fpm:9000 networks: - kanbangit-web healthcheck: test: ["CMD", "curl", "--fail", "--silent", "http://127.0.0.1:8080/up"] interval: 10s timeout: 5s retries: 3 depends_on: php-fpm: condition: service_healthy php-fpm: container_name: kanbangit-php-fpm image: kanbangit-app:local build: context: . dockerfile: Dockerfile target: runtime restart: unless-stopped env_file: - .env.production networks: - kanbangit-web - kanbangit-db healthcheck: test: ["CMD-SHELL", "php-fpm-healthcheck || exit 1"] interval: 10s timeout: 5s retries: 3 depends_on: mariadb: condition: service_healthy worker: container_name: kanbangit-worker image: kanbangit-app:local build: context: . dockerfile: Dockerfile target: runtime command: php artisan queue:work --sleep=3 --tries=3 --timeout=60 --max-time=3600 restart: unless-stopped env_file: - .env.production networks: - kanbangit-db depends_on: mariadb: condition: service_healthy mariadb: container_name: kanbangit-db image: mariadb:11.4 restart: unless-stopped env_file: - .env.mariadb command: --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci volumes: - mariadb-data-production:/var/lib/mysql networks: - kanbangit-db healthcheck: test: [ "CMD", "healthcheck.sh", "--connect", "--innodb_initialized" ] start_period: 10s interval: 10s timeout: 5s retries: 3 networks: kanbangit-db: kanbangit-web: volumes: mariadb-data-production: