version: "3.8" services: frontend: build: context: ./frontend args: OPENDC_OAUTH_CLIENT_ID: ${OPENDC_OAUTH_CLIENT_ID} image: frontend restart: on-failure networks: - backend api: build: ./api image: api restart: on-failure networks: - backend depends_on: - mongo environment: - MONGO_INITDB_ROOT_USERNAME - MONGO_INITDB_ROOT_PASSWORD - MONGO_INITDB_DATABASE - OPENDC_DB - OPENDC_DB_USERNAME - OPENDC_DB_PASSWORD - OPENDC_DB_HOST=mongo - OPENDC_FLASK_SECRET - OPENDC_OAUTH_CLIENT_ID simulator: build: ./simulator image: simulator restart: on-failure networks: - backend depends_on: - mongo volumes: - type: bind source: ./traces target: /app/traces - type: volume source: results-volume target: /results environment: - OPENDC_DB - OPENDC_DB_USERNAME - OPENDC_DB_PASSWORD - OPENDC_DB_HOST=mongo - OPENDC_OUTPUT=/results mongo: build: context: database restart: on-failure environment: - MONGO_INITDB_ROOT_USERNAME - MONGO_INITDB_ROOT_PASSWORD - MONGO_INITDB_DATABASE - OPENDC_DB - OPENDC_DB_USERNAME - OPENDC_DB_PASSWORD networks: - backend volumes: - mongo-volume:/data/db volumes: mongo-volume: results-volume: networks: backend: {}