version: '2.1'

services:

  basket.api:
    image: eshop/basket.api:${TAG:-latest}
    build:
      context: ./src/Services/Basket/Basket.API
      dockerfile: Dockerfile    
    depends_on:
      - basket.data
      - identity.api
      - rabbitmq

  catalog.api:
    image: eshop/catalog.api:${TAG:-latest}
    build:
      context: ./src/Services/Catalog/Catalog.API
      dockerfile: Dockerfile    
    depends_on:
      - sql.data
      - rabbitmq

  identity.api:
    image: eshop/identity.api:${TAG:-latest}
    build:
      context: ./src/Services/Identity/Identity.API
      dockerfile: Dockerfile    
    depends_on:
      - sql.data

  ordering.api:
    image: eshop/ordering.api:${TAG:-latest}
    build:
      context: ./src/Services/Ordering/Ordering.API
      dockerfile: Dockerfile    
    depends_on:
      - sql.data
      - rabbitmq

  marketing.api:
    image: eshop/marketing.api:${TAG:-latest}
    build:
      context: ./src/Services/Marketing/Marketing.API
      dockerfile: Dockerfile    
    depends_on:
      - sql.data
      - nosql.data
      - identity.api
      - rabbitmq

  graceperiodmanager:
    image: eshop/graceperiodmanager:${TAG:-latest}
    build:
      context: ./src/Services/GracePeriod/GracePeriodManager
      dockerfile: Dockerfile
    depends_on:
      - sql.data
      - rabbitmq

  webspa:
    image: eshop/webspa:${TAG:-latest}
    build:
      context: ./src/Web/WebSPA
      dockerfile: Dockerfile    
    depends_on:
      - catalog.api
      - ordering.api
      - identity.api
      - basket.api
      - marketing.api

  webmvc:
    image: eshop/webmvc:${TAG:-latest}
    build:
      context: ./src/Web/WebMVC
      dockerfile: Dockerfile    
    depends_on:
      - catalog.api
      - ordering.api
      - identity.api
      - basket.api
      - marketing.api

  webstatus:
    image: eshop/webstatus:${TAG:-latest}
    build:
      context: ./src/Web/WebStatus
      dockerfile: Dockerfile

  payment.api:
    image: eshop/payment.api:${TAG:-latest}
    build:
      context: ./src/Services/Payment/Payment.API
      dockerfile: Dockerfile
    depends_on:
      - rabbitmq    
    
  locations.api:
    image: eshop/locations.api:${TAG:-latest}
    build:
      context: ./src/Services/Location/Locations.API
      dockerfile: Dockerfile
    depends_on:
      - nosql.data
      - rabbitmq

  sql.data:
    image: microsoft/mssql-server-linux

  nosql.data:
    image: mongo

  basket.data:
    image: redis
    ports:
      - "6379:6379"

  rabbitmq:
    image: rabbitmq
    ports:
      - "5672:5672"