##
# 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
    logging:
      driver: "json-file"
      options:
        max-size: "100m"
        max-file: "2"
  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
    logging:
      driver: "json-file"
      options:
        max-size: "100m"
        max-file: "2"
    #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
    logging:
      driver: "json-file"
      options:
        max-size: "100m"
        max-file: "2"
  prometheus-cadvisor:
    image: google/cadvisor:${PROMETHEUS_CADVISOR_TAG:-latest}
    ports:
      - "${OSM_PROM_CADVISOR_PORTS:-8080:8080}"
    volumes:
      - /:/rootfs:ro
      - /var/run:/var/run:ro
      - /sys:/sys:ro
      - /var/lib/docker/:/var/lib/docker:ro
      - /dev/disk/:/dev/disk:ro
    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}"
    logging:
      driver: "json-file"
      options:
        max-size: "100m"
        max-file: "2"
  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}"
    logging:
      driver: "json-file"
      options:
        max-size: "100m"
        max-file: "2"
    #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
    logging:
      driver: "json-file"
      options:
        max-size: "100m"
        max-file: "2"
    #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
    logging:
      driver: "json-file"
      options:
        max-size: "100m"
        max-file: "2"
#    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}"
    logging:
      driver: "json-file"
      options:
        max-size: "100m"
        max-file: "2"
  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}"
    logging:
      driver: "json-file"
      options:
        max-size: "100m"
        max-file: "2"
  grafana:
    image: grafana/grafana
    volumes:
      - ./files/dashboards-osm.yml:/etc/grafana/provisioning/dashboards/dashboards-osm.yml
      - ./files/osm-sample-dashboard.json:/etc/grafana/provisioning/dashboards/osm-sample-dashboard.json
      - ./files/osm-system-dashboard.json:/etc/grafana/provisioning/dashboards/osm-system-dashboard.json
      - ./files/datasource-prometheus.yml:/etc/grafana/provisioning/datasources/datasource-prometheus.yml
    hostname: grafana
    ports:
      - "${OSM_GRAFANA_PORTS:-3000:3000}"
    networks:
      - netOSM