#  Copyright (C) 2020 Nordix Foundation. 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: '3.5'

networks:
  default:
    driver: bridge
    name: nonrtric-docker-net

services:
  policy-agent:
    image: nexus3.o-ran-sc.org:10004/o-ran-sc/nonrtric-policy-agent:2.3.0
    container_name: policy-agent
    networks:
      default:
        aliases:
          - policy-agent-container
    ports:
      - 8081:8081
      - 8433:8433
    volumes:
      - ./policy-service/config/application-policyagent.yaml:/opt/app/policy-agent/config/application.yaml:ro
      - ./policy-service/config/application_configuration.json:/opt/app/policy-agent/data/application_configuration.json:ro
    # For using own certs instead of the default ones (built into the container),
    # place them in config/ directory, update the application-policyagent.yaml file, and uncomment the following lines
    #  - ./policy-service/config/keystore-policyagent.jks:/opt/app/policy-agent/etc/cert/keystore.jks:ro
    #  - ./policy-service/config/truststore-policyagent.jks:/opt/app/policy-agent/etc/cert/truststore.jks:ro
    #  - ./policy-service/config/application-policyagent.yaml:/opt/app/policy-agent/config/application.yaml:ro
