version: "3.7" services: frontend: build: dockerfile: ./docker/npm/Dockerfile environment: NODE_OPTIONS: --openssl-legacy-provider ports: - "3000:3000" volumes: - ./frontend:/app depends_on: - web command: > bash -c "yarn install && yarn dev" centrifugo-rpc: build: dockerfile: ./docker/php/Dockerfile env_file: - .env environment: OTEL_SERVICE_NAME: php-centrifugo-rpc volumes: - ./centrifugo:/var/www/ - ./shared:/var/shared/ depends_on: - collector - redis command: > bash -c "chmod +x ./rr && ./rr serve" restart: on-failure web: build: dockerfile: ./docker/php/Dockerfile env_file: - .env environment: DB_DATABASE: homestead OTEL_SERVICE_NAME: php-web ports: - "8080:8080" volumes: - ./web:/var/www/ - ./proto:/var/www/proto/ - ./shared:/var/shared/ depends_on: - collector - redis - cinema - payment command: > bash -c "chmod +x ./rr && php app.php migrate && ./rr serve" restart: on-failure users: build: dockerfile: ./docker/php/Dockerfile env_file: - .env environment: DB_DATABASE: homestead OTEL_SERVICE_NAME: php-users volumes: - ./users:/var/www/ - ./proto:/var/www/proto/ - ./shared:/var/shared/ depends_on: - temporal - collector - redis command: > bash -c "chmod +x ./rr && php app.php migrate && php app.php db:seed && ./rr serve" restart: on-failure payment: build: dockerfile: ./docker/php/Dockerfile env_file: - .env environment: DB_DATABASE: homestead OTEL_SERVICE_NAME: php-payment volumes: - ./payment:/var/www/ - ./proto:/var/www/proto/ - ./shared:/var/shared/ depends_on: - temporal - collector - redis command: > bash -c "chmod +x ./rr && php app.php migrate && php app.php db:seed && ./rr serve" restart: on-failure cinema: build: dockerfile: ./docker/php/Dockerfile env_file: - .env environment: DB_DATABASE: homestead OTEL_SERVICE_NAME: php-cinema BROADCAST_CONNECTION: centrifugo volumes: - ./cinema:/var/www/ - ./proto:/var/www/proto/ - ./shared:/var/shared/ depends_on: - temporal - collector - redis command: > bash -c "chmod +x ./rr && php app.php migrate && php app.php db:seed && ./rr serve" restart: on-failure db: container_name: db image: postgres environment: POSTGRES_USER: homestead POSTGRES_DB: homestead POSTGRES_PASSWORD: secret ports: - "5432:5432" logging: driver: none postgresql: container_name: temporal-postgresql environment: POSTGRES_PASSWORD: temporal POSTGRES_USER: temporal image: postgres logging: driver: none temporal: container_name: temporal depends_on: - postgresql environment: DB: postgresql DB_PORT: 5432 POSTGRES_USER: temporal POSTGRES_PWD: temporal POSTGRES_SEEDS: postgresql DYNAMIC_CONFIG_FILE_PATH: config/dynamicconfig/development-sql.yaml image: temporalio/auto-setup volumes: - ./docker/temporal:/etc/temporal/config/dynamicconfig restart: on-failure logging: driver: none temporal-web: container_name: temporal-web depends_on: - temporal environment: - TEMPORAL_GRPC_ENDPOINT=temporal:7233 - TEMPORAL_PERMIT_WRITE_API=true image: temporalio/web ports: - "8088:8088" logging: driver: none collector: image: otel/opentelemetry-collector-contrib command: [ "--config=/etc/otel-collector-config.yml" ] volumes: - ./docker/otel/otel-collector-config.yml:/etc/otel-collector-config.yml logging: driver: none zipkin: image: openzipkin/zipkin-slim ports: - "9411:9411" logging: driver: none redis: image: redis logging: driver: none prometheus: image: prom/prometheus volumes: - ./docker/prometheus/:/etc/prometheus/ restart: always grafana: image: grafana/grafana depends_on: - prometheus ports: - 3001:3000 volumes: - ./docker/grafana/provisioning/:/etc/grafana/provisioning/ env_file: - ./docker/grafana/config.monitoring restart: always centrifugo: container_name: centrifugo image: centrifugo/centrifugo:latest volumes: - ./docker/centrifugo/config.json:/centrifugo/config.json command: centrifugo -c config.json ports: - 8089:8000 depends_on: - centrifugo-rpc ulimits: nofile: soft: 65535 hard: 65535 buggregator: image: butschster/buggregator:beta ports: - 23517:8000 - 1025:1025 - 9912:9912 - 9913:9913 birddog: image: ghcr.io/roadrunner-server/birddog:0.4.0 ports: - "8002:80" environment: DEFAULT_RPC_SERVER: cinema RPC_SERVER_CINEMA: tcp://cinema:6001 RPC_SERVER_WEB: tcp://web:6001 RPC_SERVER_USERS: tcp://users:6001 RPC_SERVER_PAYMENT: tcp://payment:6001