Merge "Portal Spring Boot Development"
[portal.git] / deliveries / docker-compose.yml
1 # docker-compose for ONAP portal containers: database, microservice, portal apps.
2 # Relies on .env file, which CANNOT be specified via command-line option
3 # Works in multiple environments; does not pull from a Nexus registry.
4 # Exposes the portal apps docker (but not DB nor WMS dockers) on the host network.
5 # Images must be pulled from ONAP Nexus registry after logging in like this:
6 # docker login -u USER -p PASS nexus3.onap.org:10001
7 # Uses healthcheck feature added in docker-compose v2.1
8
9 version: '2.1'
10
11 services:
12
13   cli:
14     image: ${CLI_IMG_NAME}:${PORTAL_TAG}
15     environment:
16       OPEN_CLI_MODE: 'daemon'
17     ports:
18       - 8080:80
19       - 9090:8080
20     logging:
21       driver: json-file
22
23   # Config files may use hostname "portal-db"
24   portal-db:
25     image: ${DB_IMG_NAME}:${PORTAL_TAG}
26     environment:
27       MYSQL_ROOT_PASSWORD: 'Aa123456'
28     expose:
29       - 3306
30     volumes:
31       # Just specify a path and let the Engine create a volume
32       - /var/lib/mysql
33       # Inject the onboarding script at start time
34       - ./Apps_Users_OnBoarding_Script.sql:/docker-entrypoint-initdb.d/zzz_apps_users_onboarding.sql
35     logging:
36       driver: json-file
37     healthcheck:
38       test: [ "CMD", "mysqladmin", "ping", "-h", "localhost" ]
39       timeout: 10s
40       retries: 30
41       
42   # Config files may use hostname "portal-cassandra"
43   portal-cassandra:
44     image: ${CDR_IMG_NAME}:${PORTAL_TAG}
45     environment:
46       - CASSUSER=root
47       - CASSPASS=Aa123456
48       - JVM_OPTS=-Xmx2536m -Xms2536m
49     expose:
50       - 7000
51       - 7001
52       - 7199
53       - 9042
54       - 9160
55     ports:
56       - 7000:7000
57       - 7001:7001
58       - 7199:7199
59       - 9042:9042
60       - 9160:9160
61     volumes:
62       - ./portal.cql:/docker-entrypoint-initdb.d/zzz_portal.cql
63       - ./portalsdk.cql:/docker-entrypoint-initdb.d/zzz_portalsdk.cql
64     links:
65       - portal-db      
66     depends_on:
67       portal-db:
68         condition: service_healthy
69         
70   # Config files may use hostname "portal-zk"
71   portal-zk:
72     image: ${ZK_IMG_NAME}:${PORTAL_TAG}
73     expose:
74       - 2181
75     ports:
76       - 2181:2181           
77
78   # The app config file uses the docker name above
79   portal-wms:
80     image: ${WMS_IMG_NAME}:${PORTAL_TAG}
81     expose:
82       - 8082
83     links:
84       - portal-db
85     depends_on:
86       portal-db:
87         condition: service_healthy
88     volumes:
89       - ${PROPS_DIR}/ONAPWIDGETMS/application.properties:/application.properties
90       - ${PROPS_DIR}/ONAPWIDGETMS/application.yml:/application.yml
91     command:
92       - /start-wms.sh
93     logging:
94       driver: json-file
95
96   portal-app:
97     image: ${EP_IMG_NAME}:${PORTAL_TAG}
98     ports:
99       - 8989:8080
100       - 8010:8009
101       - 8006:8005
102       - 8443:8443
103     links:
104       - portal-db
105       - portal-wms
106       - portal-zk
107       - portal-cassandra
108     depends_on:
109       portal-db:
110         condition: service_healthy
111       portal-wms:
112         condition: service_started
113     volumes:
114       - ${PROPS_DIR}/ONAPPORTAL/system.properties:${WEBAPPS_DIR}/ONAPPORTAL/WEB-INF/conf/system.properties
115       - ${PROPS_DIR}/ONAPPORTAL/fusion.properties:${WEBAPPS_DIR}/ONAPPORTAL/WEB-INF/fusion/conf/fusion.properties
116       - ${PROPS_DIR}/ONAPPORTAL/portal.properties:${WEBAPPS_DIR}/ONAPPORTAL/WEB-INF/classes/portal.properties
117       - ${PROPS_DIR}/ONAPPORTAL/music.properties:${WEBAPPS_DIR}/ONAPPORTAL/WEB-INF/classes/music.properties
118       - ${PROPS_DIR}/ONAPPORTAL/openid-connect.properties:${WEBAPPS_DIR}/ONAPPORTAL/WEB-INF/classes/openid-connect.properties
119       - ${PROPS_DIR}/ONAPPORTAL/logback.xml:${WEBAPPS_DIR}/ONAPPORTAL/WEB-INF/classes/logback.xml
120       - ./${TOMCAT_TRUST}:${TOMCAT_DIR}/${TOMCAT_TRUST}
121       - ./${TOMCAT_KEY}:${TOMCAT_DIR}/${TOMCAT_KEY}
122       - ${LOGS_DIR}:${TOMCAT_DIR}/logs
123     command:
124       - /start-apache-tomcat.sh
125       # see comments in .env file
126       - -i
127       - $EXTRA_HOST_IP
128       - -n
129       - $EXTRA_HOST_NAME
130     logging:
131       driver: json-file
132     environment:
133       - CATALINA_OPTS=-Xmx1536m -Xms1536m
134       - javax.net.ssl.keyStore=${TOMCAT_DIR}/${TOMCAT_TRUST} 
135       - javax.net.ssl.keyStorePassword=${CERT_PWD}
136       - javax.net.ssl.trustStore=${TOMCAT_DIR}/${TOMCAT_TRUST}
137       - javax.net.ssl.trustStorePassword=${CERT_PWD}
138   portal-sdk:
139     image: ${SDK_IMG_NAME}:${PORTAL_TAG}
140     ports:
141       - 8990:8080
142     links:
143       - portal-db
144       - portal-wms
145       - portal-zk
146       - portal-cassandra
147     depends_on:
148       portal-db:
149         condition: service_healthy
150     volumes:
151       - ${PROPS_DIR}/ONAPPORTALSDK/fusion.properties:${WEBAPPS_DIR}/ONAPPORTALSDK/WEB-INF/fusion/conf/fusion.properties
152       - ${PROPS_DIR}/ONAPPORTALSDK/system.properties:${WEBAPPS_DIR}/ONAPPORTALSDK/WEB-INF/conf/system.properties
153       - ${PROPS_DIR}/ONAPPORTALSDK/portal.properties:${WEBAPPS_DIR}/ONAPPORTALSDK/WEB-INF/classes/portal.properties
154       - ${PROPS_DIR}/ONAPPORTALSDK/music.properties:${WEBAPPS_DIR}/ONAPPORTALSDK/WEB-INF/classes/music.properties
155       - ${PROPS_DIR}/ONAPPORTALSDK/logback.xml:${WEBAPPS_DIR}/ONAPPORTALSDK/WEB-INF/classes/logback.xml
156       - ${LOGS_DIR}:${TOMCAT_DIR}/logs
157     command:
158       - /start-apache-tomcat.sh
159     logging:
160       driver: json-file
161     environment:
162       - CATALINA_OPTS=-Xmx1536m -Xms1536m