# Copyright (C) 2019 Nordix Foundation.
# Modifications Copyright (C) 2019 AT&T Intellectual Property.
#
# 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: '2'
networks:
  default:
    driver: bridge
services:
   mariadb:
      image: mariadb:10.2.14
      container_name: mariadb
      hostname: mariadb
      command: ['--lower-case-table-names=1', '--wait_timeout=28800']
      env_file: config/db/db.conf
      volumes:
         - ./config/db:/docker-entrypoint-initdb.d
      ports:
       - "3306:3306"
   message-router:
      image: dmaap/simulator
      container_name: dmaap-simulator
      hostname: dmaap-simulator
      ports:
       - "3904:3904"
   pap:
      image: nexus3.onap.org:10001/onap/policy-pap
      container_name: policy-pap
      depends_on:
       - mariadb
       - message-router
      hostname: policy-pap

   api:
      image: nexus3.onap.org:10001/onap/policy-api
      container_name: policy-api
      depends_on:
       - mariadb
      hostname: policy-api
   apex:
      image: nexus3.onap.org:10001/onap/policy-apex-pdp
      container_name: policy-apex-pdp
      depends_on:
       - mariadb
       - message-router
       - pap
      hostname: policy-apex-pdp
      command: ['/opt/app/policy/apex-pdp/bin/apexOnapPf.sh', '-c', '/opt/app/policy/apex-pdp/etc/onappf/config/OnapPfConfig.json', '-p', '/opt/app/policy/apex-pdp/etc/onappf/config/topic.properties']

      ports:
       - "6969:6969"
       - "23324:23324"
   start_dependencies:
      image: dadarek/wait-for-dependencies
      environment:
        TIMEOUT_LENGTH: 60
      container_name: policy-wait
      depends_on:
        - mariadb
        - message-router
      hostname: policy-wait
      command:
        mariadb:3306
        message-router:3904
   start_all:
      image: dadarek/wait-for-dependencies
      environment:
        TIMEOUT_LENGTH: 60
      container_name: policy-wait-all
      depends_on:
        - mariadb
        - message-router
        - api
        - pap
        - apex
      hostname: policy-wait-all
      command:
        mariadb:3306
        message-router:3904
        api:6969
        pap:6969
        apex:6969
