version: '3.2'

services:
  # Builds and serves the MobyMask react-app
  mobymask-app:
    restart: unless-stopped
    image: cerc/mobymask-ui:local
    env_file:
      - ../config/watcher-mobymask-v2/mobymask-params.env
    environment:
      CERC_SCRIPT_DEBUG: ${CERC_SCRIPT_DEBUG}
      CERC_CHAIN_ID: ${CERC_CHAIN_ID}
      CERC_DEPLOYED_CONTRACT: ${CERC_DEPLOYED_CONTRACT}
      CERC_APP_WATCHER_URL: ${CERC_APP_WATCHER_URL}
      CERC_RELAY_NODES: ${CERC_RELAY_NODES}
    working_dir: /scripts
    # Waits for watcher server to be up before app build
    # Required when running with watcher stack to get deployed contract address
    command:
      - sh
      - -c
      - ./wait-for-it.sh -h ${CERC_WATCHER_HOST:-$${DEFAULT_CERC_WATCHER_HOST}} -p ${CERC_WATCHER_PORT:-$${DEFAULT_CERC_WATCHER_PORT}} -s -t 0 -- ./mobymask-app-start.sh
    volumes:
      - ../config/wait-for-it.sh:/scripts/wait-for-it.sh
      - ../config/watcher-mobymask-v2/mobymask-app-start.sh:/scripts/mobymask-app-start.sh
      - peers_ids:/peers
      - mobymask_deployment:/server
    ports:
      - "0.0.0.0:3002:80"
    healthcheck:
      test: ["CMD", "nc", "-v", "localhost", "80"]
      interval: 20s
      timeout: 5s
      retries: 15
      start_period: 10s
    shm_size: '1GB'
    extra_hosts:
      - "host.docker.internal:host-gateway"

volumes:
  mobymask_deployment:
  peers_ids:
