##
# Copyright 2019 ETSI
#
# Licensed 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'
volumes:
  ro:
  ro_db:
  mongo_db:
  mon_db:
  pol_db:
  osm_packages:
  prom_db:
networks:
  netOSM:
    external:
      name: ${OSM_NETWORK:-netosm}
    #driver: overlay
    #driver_opts:
    #  com.docker.network.driver.mtu: "1446"
services:
  zookeeper:
    image: wurstmeister/zookeeper:${ZOOKEEPER_TAG:-latest}
#    ports:
#      - "2181:2181"
    networks:
      - netOSM
    healthcheck:
      test: echo stat | nc localhost 2181
      interval: 10s
      timeout: 10s
      retries: 3
  kafka:
    image: wurstmeister/kafka:${KAFKA_TAG:-latest}
    ports:
      - "9092"
    networks:
      - netOSM
    environment:
      KAFKA_ADVERTISED_HOST_NAME: kafka
      KAFKA_ADVERTISED_PORT: 9092
      KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
      KAFKA_LOG_RETENTION_HOURS: 24
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
    healthcheck:
      test: zookeeper-shell.sh zookeeper:2181 ls /brokers/ids 2>&1 | grep "Node does not exist" && exit 1 || exit 0
      interval: 20s
      timeout: 10s
      retries: 5
    #depends_on:
    #  - zookeeper
  mongo:
    image: mongo
#    ports:
#      - "27017:27017"
    networks:
      - netOSM
    volumes:
      - mongo_db:/data/db
  prometheus:
    image: prom/prometheus:${PROMETHEUS_TAG:-latest}
    hostname: prometheus
    ports:
      - "${OSM_PROM_PORTS:-9091:9090}"
    volumes:
      - ./prometheus.yml:/etc/prometheus/prometheus.yml:ro
      - prom_db:/prometheus
    networks:
      - netOSM
  keystone:
    image: ${DOCKER_USER:-opensourcemano}/keystone:${TAG:-6}
    networks:
      - netOSM
    environment:
      DB_HOST: mysql
    env_file:
      - ./keystone.env
    ports:
      - "${OSM_KEYSTONE_PORTS:-5000:5000}"
  nbi:
    image: ${DOCKER_USER:-opensourcemano}/nbi:${TAG:-6}
    networks:
      - netOSM
    volumes:
      - osm_packages:/app/storage
    environment:
      OSMNBI_DATABASE_HOST: mongo
      OSMNBI_MESSAGE_HOST: kafka
    env_file:
      - ./nbi.env
    ports:
      - "${OSM_NBI_PORTS:-9999:9999}"
    #depends_on:
    #  - kafka
    #  - mongo
  lcm:
    image: ${DOCKER_USER:-opensourcemano}/lcm:${TAG:-6}
    networks:
      - netOSM
    volumes:
      - osm_packages:/app/storage
    environment:
      OSMLCM_RO_HOST: ro
      OSMLCM_DATABASE_HOST: mongo
      OSMLCM_MESSAGE_HOST: kafka
    env_file:
      - ./lcm.env
    #depends_on:
    #  - kafka
    #  - mongo
    #  - ro
  mysql:
    image: mysql:5
    networks:
      netOSM:
        aliases:
          - ro-db
    volumes:
      - ro_db:/var/lib/mysql
    env_file:
      - ./ro-db.env
#    ports:
#      - "3306:3306"
  ro:
    image: ${DOCKER_USER:-opensourcemano}/ro:${TAG:-6}
    networks:
      - netOSM
    environment:
      RO_DB_HOST: mysql
    env_file:
      - ./ro.env
    #depends_on:
    #  - mysql
    volumes:
      - ro:/var/log/osm
    ports:
      - "${OSM_RO_PORTS:-9090:9090}"
  mon:
    image: ${DOCKER_USER:-opensourcemano}/mon:${TAG:-6}
    networks:
      - netOSM
    volumes:
      - mon_db:/app/database
    environment:
      OSMMON_MESSAGE_HOST: kafka
      OSMMON_MESSAGE_PORT: 9092
    env_file:
      - ./mon.env
    ports:
      - "${OSM_MON_PORTS:-8662:8662}"
    #depends_on:
    #  - kafka
    logging:
        driver: "json-file"
        options:
            max-file: 5
            max-size: 10m
  pol:
    image: ${DOCKER_USER:-opensourcemano}/pol:${TAG:-6}
    networks:
      - netOSM
    volumes:
      - pol_db:/app/database
    environment:
      OSMPOL_MESSAGE_HOST: kafka
      OSMPOL_MESSAGE_PORT: 9092
    env_file:
      - ./pol.env
    #depends_on:
    #  - kafka
    #  - mon
    logging:
      driver: "json-file"
      options:
        max-file: 5
        max-size: 10m
  light-ui:
    image: ${DOCKER_USER:-opensourcemano}/light-ui:${TAG:-6}
    networks:
      - netOSM
    environment:
      OSM_SERVER: nbi
    #depends_on:
    #  - nbi
    env_file:
      - ./lwui.env
    ports:
      - "${OSM_UI_PORTS:-80:80}"
