#
# ===========LICENSE_START====================================================
#  Copyright (C) 2020-2021 AT&T Intellectual Property. All rights reserved.
#  Modifications Copyright (C) 2021 Bell Canada. All rights reserved.
# ============================================================================
# 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.
# ============LICENSE_END=====================================================
#
version: '2'
services:
   mariadb:
      image: nexus3.onap.org:10001/mariadb:${POLICY_MARIADB_VER}
      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:ro
      expose:
       - 3306
   simulator:
      image: nexus3.onap.org:10001/onap/policy-models-simulator:${POLICY_MODELS_VERSION}
      container_name: simulator
      hostname: simulator
      networks:
          default:
              aliases:
                  - message-router
                  - aai-sim
                  - grpc-sim
                  - sdnc-sim
                  - so-sim
                  - vfc-sim
      volumes:
       - ./config/sim-all:/opt/app/policy/simulators/etc/mounted:ro
       - ./config/ks.jks:/opt/app/policy/simulators/etc/ssl/policy-keystore:ro
       - ./config/policy-truststore:/opt/app/policy/simulators/etc/ssl/policy-truststore:ro
      expose:
       - 6666
       - 6668
       - 6669
       - 6670
       - 3905
       - 6680
   api:
      image: nexus3.onap.org:10001/onap/policy-api:${POLICY_API_VERSION}
      container_name: policy-api
      depends_on:
       - mariadb
      hostname: policy-api
      expose:
       - 6969
      volumes:
       - ./config/ks.jks:/opt/app/policy/api/etc/ssl/policy-keystore:ro
       - ./config/policy-truststore:/opt/app/policy/api/etc/ssl/policy-truststore:ro
       - ./wait_for_port.sh:/opt/app/policy/api/bin/wait_for_port.sh:ro
      entrypoint: ./wait_for_port.sh
      command: [
        '-c', './policy-api.sh',
        'mariadb', '3306'
        ]
   pap:
      image: nexus3.onap.org:10001/onap/policy-pap:${POLICY_PAP_VERSION}
      container_name: policy-pap
      depends_on:
       - mariadb
       - simulator
       - api
      hostname: policy-pap
      expose:
       - 6969
      volumes:
       - ./config/pap/defaultConfig.json:/opt/app/policy/pap/etc/defaultConfig.json:ro
       - ./config/ks.jks:/opt/app/policy/pap/etc/ssl/policy-keystore:ro
       - ./config/policy-truststore:/opt/app/policy/pap/etc/ssl/policy-truststore:ro
       - ./wait_for_port.sh:/opt/app/policy/pap/bin/wait_for_port.sh:ro
      entrypoint: ./wait_for_port.sh
      command: [
        '-c', './policy-pap.sh',
        'mariadb', '3306',
        'message-router', '3905',
        'api', '6969'
        ]
   xacml-pdp:
      image: nexus3.onap.org:10001/onap/policy-xacml-pdp:${POLICY_XACML_PDP_VERSION}
      container_name: policy-xacml-pdp
      depends_on:
       - mariadb
       - simulator
       - pap
      hostname: policy-xacml-pdp
      expose:
       - 6969
      volumes:
       - ./config/xacml-pdp/defaultConfig.json:/opt/app/policy/pdpx/etc/defaultConfig.json:ro
       - ./config/ks.jks:/opt/app/policy/pdpx/etc/ssl/policy-keystore:ro
       - ./config/policy-truststore:/opt/app/policy/pdpx/etc/ssl/policy-truststore:ro
       - ./wait_for_port.sh:/opt/app/policy/pdpx/bin/wait_for_port.sh:ro
      entrypoint: ./wait_for_port.sh
      command: [
        '-c', './policy-pdpx.sh',
        'mariadb'