fe41fc4ffedd64774e823c7838e7074900c5bbb8
[cps.git] / docker-compose / docker-compose.yml
1 # ============LICENSE_START=======================================================
2 # Copyright (c) 2020 Pantheon.tech.
3 # Modifications Copyright (C) 2021 Bell Canada.
4 # Modifications Copyright (C) 2022-2023 Nordix Foundation.
5 # ================================================================================
6 # Licensed under the Apache License, Version 2.0 (the "License");
7 # you may not use this file except in compliance with the License.
8 # You may obtain a copy of the License at
9 #
10 #       http://www.apache.org/licenses/LICENSE-2.0
11 #
12 # Unless required by applicable law or agreed to in writing, software
13 # distributed under the License is distributed on an "AS IS" BASIS,
14 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 # See the License for the specific language governing permissions and
16 # limitations under the License.
17 # ============LICENSE_END=========================================================
18
19 services:
20
21   ### docker-compose up -d -> run ALL services ###
22   ### to disable notifications make notification.enabled to false & comment out kafka/zookeeper services ###
23
24   dbpostgresql:
25     container_name: dbpostgresql
26     image: postgres:14.1-alpine
27     ports:
28       - ${DB_PORT:-5432}:5432
29     environment:
30       POSTGRES_DB: cpsdb
31       POSTGRES_USER: ${DB_USERNAME:-cps}
32       POSTGRES_PASSWORD: ${DB_PASSWORD:-cps}
33     healthcheck:
34       test: ["CMD", "pg_isready"]
35       interval: 30s
36       timeout: 5s
37       retries: 5
38
39   cps-and-ncmp:
40     container_name: cps-and-ncmp
41     image: ${DOCKER_REPO:-nexus3.onap.org:10003}/onap/cps-and-ncmp:${CPS_VERSION:-latest}
42     ports:
43       - ${CPS_CORE_PORT:-8883}:8080
44       - ${CPS_CORE_MANAGEMENT_PORT:-8887}:8081
45     environment:
46       CPS_USERNAME: ${CPS_CORE_USERNAME:-cpsuser}
47       CPS_PASSWORD: ${CPS_CORE_PASSWORD:-cpsr0cks!}
48       DB_HOST: ${DB_HOST:-dbpostgresql}
49       DB_USERNAME: ${DB_USERNAME:-cps}
50       DB_PASSWORD: ${DB_PASSWORD:-cps}
51       DMI_USERNAME: ${DMI_USERNAME:-cpsuser}
52       DMI_PASSWORD: ${DMI_PASSWORD:-cpsr0cks!}
53       KAFKA_BOOTSTRAP_SERVER: kafka:9092
54       notification.enabled: 'true'
55       notification.async.executor.time-out-value-in-ms: 2000
56       NOTIFICATION_DATASPACE_FILTER_PATTERNS: '.*'
57       NCMP_TIMERS_ADVISED-MODULES-SYNC_SLEEP-TIME-MS: ${ADVISED_MODULES_SYNC_SLEEP_TIME_MS:-30000}
58       NCMP_TIMERS_CM-HANDLE-DATA-SYNC_SLEEP-TIME-MS: ${CMHANDLE_DATA_SYNC_SLEEP_TIME_MS:-30000}
59     restart: unless-stopped
60     depends_on:
61       - dbpostgresql
62
63   ### if kafka is not required comment out zookeeper and kafka ###
64   zookeeper:
65     image: confluentinc/cp-zookeeper:6.2.1
66     container_name: zookeeper
67     ports:
68       - '2181:2181'
69     environment:
70       ZOOKEEPER_CLIENT_PORT: 2181
71
72   kafka:
73     image: confluentinc/cp-kafka:6.2.1
74     container_name: kafka
75     ports:
76       - "19092:19092"
77     depends_on:
78       - zookeeper
79     environment:
80       KAFKA_BROKER_ID: 1
81       KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
82       KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://kafka:9092,CONNECTIONS_FROM_HOST://localhost:19092
83       KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: PLAINTEXT:PLAINTEXT,CONNECTIONS_FROM_HOST:PLAINTEXT
84       KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1
85
86   ### Comment out this section if dmi plugin is not required ###
87   ncmp-dmi-plugin:
88     container_name: ncmp-dmi-plugin
89     image: ${DOCKER_REPO:-nexus3.onap.org:10003}/onap/ncmp-dmi-plugin:${DMI_VERSION:-1.3.0-SNAPSHOT-latest}
90     ports:
91       - ${DMI_PORT:-8783}:8080
92       - ${DMI_MANAGEMENT_PORT:-8787}:8081
93     environment:
94       CPS_USERNAME: ${CPS_CORE_USERNAME:-cpsuser}
95       CPS_PASSWORD: ${CPS_CORE_PASSWORD:-cpsr0cks!}
96       CPS_CORE_HOST: ${CPS_CORE_HOST:-cps-and-ncmp}
97       CPS_CORE_PORT: ${CPS_CORE_PORT:-8080}
98       CPS_CORE_USERNAME: ${CPS_CORE_USERNAME:-cpsuser}
99       CPS_CORE_PASSWORD: ${CPS_CORE_PASSWORD:-cpsr0cks!}
100       SDNC_HOST: ${SDNC_HOST:-sdnc}
101       SDNC_PORT: ${SDNC_PORT:-8181}
102       SDNC_USERNAME: ${SDNC_USERNAME:-admin}
103       SDNC_PASSWORD: ${SDNC_PASSWORD:-Kp8bJ4SXszM0WXlhak3eHlcse2gAw84vaoGGmJvUy2U}
104       DMI_SERVICE_URL: ${DMI_SERVICE_URL:-http://ncmp-dmi-plugin:8783}
105       DMI_USERNAME: ${DMI_USERNAME:-cpsuser}
106       DMI_PASSWORD: ${DMI_PASSWORD:-cpsr0cks!}
107       KAFKA_BOOTSTRAP_SERVER: kafka:9092
108       notification.data-updated.enabled: 'true'
109       NOTIFICATION_DATASPACE_FILTER_PATTERNS: '.*'
110     restart: unless-stopped
111
112   init-db:
113     build: ../../../docker-compose/initfile
114     environment:
115       CPS_CORE_PORT: ${CPS_CORE_PORT:-8883}
116       CPS_CORE_MANAGEMENT_PORT: ${CPS_CORE_MANAGEMENT_PORT:-8887}
117     volumes:
118       - ./initfile:/initfile
119       - ../../../cps-ncmp-service/src/main/resources/model/:/model
120     depends_on:
121       cps-and-ncmp:
122         condition: service_started