#  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:
  ecs:
    image: nexus3.o-ran-sc.org:10004/o-ran-sc/nonrtric-enrichment-coordinator-service:1.0.0
    container_name: ecs
    networks:
      default:
        aliases:
          - enrichment-service-container
    ports:
      - 8083:8083
      - 8434:8434

  policy-control-panel:
    image: nexus3.o-ran-sc.org:10004/o-ran-sc/nonrtric-controlpanel:2.0.0
    container_name: policy-control-panel
    networks:
      - default
    ports:
      - 8080:8080
      - 8082:8082

  producer:
    image: eexit/mirror-http-server
    container_name: producer
    networks:
      - default
    ports:
      - 8088:80

