version: '3.6'

volumes:
  pg-i18n-data:

networks:
  global:
    external: true

services:
  graphql_gateway:
    image: registry.gitlab.com/skinholdings/graphql-gateway:stable
    deploy:
      labels:
        - traefik.port=5000
        - traefik.docker.network=global
        - traefik.frontend.rule=Host:graphql.drakemall.xyz
      resources:
        limits:
          memory: 1024M
        reservations:
          memory: 64M
    environment:
      NODE_ENV: development
      PORT: 5000
      REDIS_URL: "redis://common-redis"
      USER_ONLINE_TTL: 10000
      HEALTHCHECK_TIMEOUT: 10000
      ONLINE_USERS_COUNTER_ENABLED: "true"
      ADAPTER_ENDPOINT: "http://adapter_graphql:5000"
      GRAPHQL_ENDPOINT_1: http://adapter_graphql:5000/users-graphql|ws://adapter_graphql:5000/graphql
      GRAPHQL_ENDPOINT_2: http://adapter_graphql:5000/cases-graphql|ws://adapter_graphql:5000/graphql
      GRAPHQL_ENDPOINT_3: http://adapter_graphql:5000/banking-graphql|ws://adapter_graphql:5000/graphql
      GRAPHQL_ENDPOINT_4: http://adapter_graphql:5000/admin-graphql|ws://adapter_graphql:5000/graphql
      GRAPHQL_ENDPOINT_5: http://i18n_graphql:5000/graphql
      GRAPHQL_ENDPOINT_6: http://adapter_graphql:5000/app-graphql
    networks:
      - global
    depends_on:
    - adapter_graphql
    - i18n_graphql
    ports: 
    - 32776:5000

  adapter_graphql:
    image: registry.gitlab.com/skinholdings/graphql-adapter:stable
    environment:
      NODE_ENV: development
      REDIS_PUB_SUB_ENABLED: "true"
      REDIS_URL: redis://:a7ZxsqbXZuqR@35.197.200.247:6379/0
      API_URL: http://35.204.80.31/api
      API_HOST: dev.drakemall.com
      AMAZON_BUCKET_LOCATION: drakemall-files.s3.amazonaws.com
      SERVICE_PORT: 5000
      HEALTH_CHECK_ENABLED: "false"
    networks:
      - global
    ports: 
    - 5000

  i18n_graphql:
    image: registry.gitlab.com/skinholdings/i18n-graphql-es-server:stable
    deploy:
      resources:
        limits:
          memory: 256M
        reservations:
          memory: 64M
    environment:
      NODE_ENV: development
      #
      PHRASE_APP_ACCESS_TOKEN: 24f8e70913829ab60d4261f6b3fa74f93169e6c45cd3080b8d8150bf64038bd7
      PHRASEAPP_PROJECT_ID_DRAGON: 037ba7ab16f703d3e20fac9c28e1f8d3
      #
      POSTGRES_URI: postgres://heathmont:1234567890@adapter-deps_pg_i18n/i18n
      REDIS_URL: redis://common-redis
      SERVICE_PORT: 5000
      SOCKET_CLOSE_TIMEOUT: 30000
      # Update translation records every 30 min
      TRANSLATIONS_UPDATE_CRON: '*/30 * * * *'
    networks:
    - global
    depends_on:
    - pg_i18n
    ports: 
    - 32784:5000
  
  pg_i18n:
    image: postgres:10.3
    ports:
      - 5432:5432/tcp
    volumes:
      - pg-i18n-data:/var/lib/postgresql/data
    environment:
      POSTGRES_USER: heathmont
      POSTGRES_PASSWORD: 1234567890
      POSTGRES_DB: i18n
    networks:
      - global