## ---------------------------------------------------------------------------
## Licensed to the Apache Software Foundation (ASF) under one or more
## contributor license agreements.  See the NOTICE file distributed with
## this work for additional information regarding copyright ownership.
## The ASF licenses this file to You under the Apache License, Version 2.0
## (the "License"); you may not use this file except in compliance with
## the License.  You may obtain a copy of the License at
##
##      http://www.apache.org/licenses/LICENSE-2.0
##
## Unless required by applicable law or agreed to in writing, software
## distributed under the License is distributed on an "AS IS" BASIS,
## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
## See the License for the specific language governing permissions and
## limitations under the License.
## ---------------------------------------------------------------------------
version: '3.3'
services:
  mongo:
    image: mongo:4.0
    container_name: mongo
    command: mongod --replSet rs/mongo:27017
    ports:
      - 27017:27017
    #volumes:
    #  - ./data/db:/data/db
    healthcheck:
      test: [ "CMD-SHELL", "echo 'db.runCommand({serverStatus: 1}).ok | mongo mongo:27017 --quiet'" ]
      interval: 5s
      timeout: 5s
      retries: 3
  mongo_cfg:
    image: mongo:4.0
    container_name: mongo_cfg
    command: |
      bash -c "echo 'rs.initiate({_id: \"rs\", members: [{_id: 0, host: \"mongo:27017\"}]})' | mongo mongo:27017 --quiet"
    depends_on:
      mongo:
        condition: service_healthy

  service-center:
    image: servicecomb/service-center:2.0.0
    container_name: sc
    ports:
      - 30100:30100
    environment:
      SERVER_HOST: 0.0.0.0
      LOG_LEVEL: DEBUG
      LOG_FILE: ''
      REGISTRY_KIND: mongo
      REGISTRY_MONGO_CLUSTER_URI: mongodb://mongo:27017
    depends_on:
      mongo_cfg:
        condition: service_completed_successfully
  kie:
    image: servicecomb/kie:0.2.1
    container_name: kie
    environment:
      MONGODB_ADDR: mongo:27017
    ports:
      - 30110:30110
    depends_on:
      mongo_cfg:
        condition: service_completed_successfully
  ux:
    image: servicecomb/ux:latest
    container_name: ux
    ports:
      - 4200:4200
    depends_on:
      service-center:
        condition: service_started
      kie:
        condition: service_started