## ---------------------------------------------------------------------------
## 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.0'

services:
  database:
    image: "postgres"
    hostname: postgres
    environment:
      - POSTGRES_DB=saga
      - POSTGRES_USER=saga
      - POSTGRES_PASSWORD=password

  alpha:
    image: "alpha-server:${TAG}"
    hostname: alpha-server
    links:
      - "database:postgresql.servicecomb.io"
    ports:
      - "8090:8090"
    environment:
      - JAVA_OPTS=-Dspring.profiles.active=prd
      - WAIT_FOR_SERVICES=postgresql.servicecomb.io:5432:150
    depends_on:
      - database

  servicecenter:
    image: "servicecomb/service-center:latest"
    hostname: service-center
    ports:
      - "30100:30100"

  hotel:
    image: "scb-hotel:${TAG}"
    hostname: hotel
    links:
      - "alpha:alpha-server.servicecomb.io"
      - "servicecenter:service-center.servicecomb.io"
    environment:
      - WAIT_FOR_SERVICES=alpha-server.servicecomb.io:8080:150,service-center.servicecomb.io:30100:150
    ports:
      - "8081:8081"
    depends_on:
      - alpha
      - servicecenter

  car:
    image: "scb-car:${TAG}"
    hostname: car
    links:
      - "alpha:alpha-server.servicecomb.io"
      - "servicecenter:service-center.servicecomb.io"
    environment:
      - WAIT_FOR_SERVICES=alpha-server.servicecomb.io:8080:150,service-center.servicecomb.io:30100:150
    ports:
      - "8082:8082"
    depends_on:
      - alpha
      - servicecenter

  booking:
    image: "scb-booking:${TAG}"
    hostname: booking
    links:
      - "alpha:alpha-server.servicecomb.io"
      - "hotel:hotel.servicecomb.io"
      - "car:car.servicecomb.io"
      - "servicecenter:service-center.servicecomb.io"
    environment:
      - WAIT_FOR_SERVICES=alpha-server.servicecomb.io:8080:150,service-center.servicecomb.io:30100:150,hotel.servicecomb.io:8081:150,car.servicecomb.io:8082:150
    ports:
      - "8083:8083"
    depends_on:
      - alpha
      - servicecenter
      - hotel
      - car
