version: '3.2' services: mobymask-watcher-db: restart: unless-stopped image: postgres:14-alpine environment: - POSTGRES_USER=vdbm - POSTGRES_MULTIPLE_DATABASES=mobymask-watcher,mobymask-watcher-job-queue - POSTGRES_EXTENSION=mobymask-watcher-job-queue:pgcrypto - POSTGRES_PASSWORD=password volumes: - ../config/postgresql/multiple-postgressql-databases.sh:/docker-entrypoint-initdb.d/multiple-postgressql-databases.sh - mobymask_watcher_db_data:/var/lib/postgresql/data ports: - "0.0.0.0:15432:5432" healthcheck: test: ["CMD", "nc", "-v", "localhost", "5432"] interval: 20s timeout: 5s retries: 15 start_period: 10s mobymask: restart: unless-stopped depends_on: mobymask-watcher-db: condition: service_healthy image: cerc/mobymask:local working_dir: /app/packages/server environment: - ENV=PROD command: ["sh", "-c", "npm start"] volumes: - ../config/watcher-mobymask-v2/secrets.json:/app/packages/server/secrets.json - moby_data_server:/app/packages/server healthcheck: test: ["CMD", "nc", "-v", "localhost", "3330"] interval: 20s timeout: 5s retries: 15 start_period: 10s mobymask-watcher-server: restart: unless-stopped depends_on: mobymask-watcher-db: condition: service_healthy image: cerc/watcher-mobymask-v2:local command: ["sh", "-c", "yarn server"] volumes: - ../config/watcher-mobymask-v2/watcher.toml:/app/packages/mobymask-v2-watcher/environments/local.toml - ../config/watcher-mobymask-v2/peer.env:/app/packages/peer/.env - ../config/watcher-mobymask-v2/relay-id.json:/app/packages/mobymask-v2-watcher/relay-id.json ports: - "0.0.0.0:3001:3001" - "0.0.0.0:9001:9001" - "0.0.0.0:9090:9090" healthcheck: test: ["CMD", "busybox", "nc", "localhost", "9090"] interval: 20s timeout: 5s retries: 15 start_period: 5s mobymask-watcher-peer: restart: unless-stopped depends_on: mobymask: condition: service_healthy image: cerc/watcher-mobymask-v2:local command: ["sh", "peer-start.sh"] volumes: - ../config/watcher-mobymask-v2/watcher.toml:/app/packages/mobymask-v2-watcher/environments/local.toml - ../config/watcher-mobymask-v2/peer-id.json:/app/packages/mobymask-v2-watcher/peer-id.json - ../config/watcher-mobymask-v2/peer-start.sh:/app/packages/mobymask-v2-watcher/peer-start.sh - moby_data_server:/server mobymask-app: depends_on: mobymask-watcher-server: condition: service_healthy mobymask: condition: service_healthy image: cerc/mobymask-ui:local command: ["sh", "mobymask-app-start.sh"] volumes: - ../config/watcher-mobymask-v2/mobymask-app.env:/app/.env - ../config/watcher-mobymask-v2/mobymask-app-config.json:/app/src/mobymask-app-config.json - ../config/watcher-mobymask-v2/mobymask-app-start.sh:/app/mobymask-app-start.sh - moby_data_server:/server ports: - "0.0.0.0:3002:3000" healthcheck: test: ["CMD", "nc", "-v", "localhost", "3000"] interval: 20s timeout: 5s retries: 15 start_period: 10s shm_size: '1GB' peer-test-app: depends_on: mobymask-watcher-server: condition: service_healthy image: cerc/react-peer:local working_dir: /app/packages/test-app command: ["sh", "-c", "yarn build && serve -s build"] volumes: - ../config/watcher-mobymask-v2/test-app-config.json:/app/packages/test-app/src/config.json ports: - "0.0.0.0:3003:3000" healthcheck: test: ["CMD", "nc", "-v", "localhost", "3000"] interval: 20s timeout: 5s retries: 15 start_period: 10s volumes: mobymask_watcher_db_data: moby_data_server: networks: # https://docs.docker.com/compose/networking/#configure-the-default-network default: # https://docs.docker.com/compose/networking/#use-a-pre-existing-network name: mobymask-v2-network external: true