X-Git-Url: https://gerrit.onap.org/r/gitweb?p=portal.git;a=blobdiff_plain;f=deliveries%2Fdocker-compose.yml;h=775385426cc9b9489f837313902c1c927bff80fe;hp=1ea2bb67aa48f4abb7cbf42b792406cfec439c64;hb=83de9db899ebf7ec87220670d6f5cf35a10d087b;hpb=978dbcf0a196acbafad72fe1e2478ec0e384f02f diff --git a/deliveries/docker-compose.yml b/deliveries/docker-compose.yml index 1ea2bb67..77538542 100644 --- a/deliveries/docker-compose.yml +++ b/deliveries/docker-compose.yml @@ -1,12 +1,25 @@ # docker-compose for ONAP portal containers: database, microservice, portal apps. -# Only exposes the portal apps on host network, not the database or WMS. -# Works in multiple environments; does not pull from a Nexus repository. -# Relies on .env file in current directory. +# Relies on .env file, which CANNOT be specified via command-line option +# Works in multiple environments; does not pull from a Nexus registry. +# Exposes the portal apps docker (but not DB nor WMS dockers) on the host network. +# Images must be pulled from ONAP Nexus registry after logging in like this: +# docker login -u USER -p PASS nexus3.onap.org:10001 +# Uses healthcheck feature added in docker-compose v2.1 -version: '2.0' +version: '2.1' services: + cli: + image: ${CLI_IMG_NAME}:${PORTAL_TAG} + environment: + OPEN_CLI_MODE: 'daemon' + ports: + - 8080:80 + - 9090:8080 + logging: + driver: json-file + # Config files may use hostname "portal-db" portal-db: image: ${DB_IMG_NAME}:${PORTAL_TAG} @@ -17,11 +30,52 @@ services: volumes: # Just specify a path and let the Engine create a volume - /var/lib/mysql + # Inject the onboarding script at start time + - ./Apps_Users_OnBoarding_Script.sql:/docker-entrypoint-initdb.d/zzz_apps_users_onboarding.sql logging: driver: json-file + healthcheck: + test: [ "CMD", "mysqladmin", "ping", "-h", "localhost" ] + timeout: 10s + retries: 30 + + # Config files may use hostname "portal-cassandra" + portal-cassandra: + image: ${CDR_IMG_NAME}:${PORTAL_TAG} + environment: + - CASSUSER=root + - CASSPASS=Aa123456 + - JVM_OPTS=-Xmx2536m -Xms2536m + expose: + - 7000 + - 7001 + - 7199 + - 9042 + - 9160 + ports: + - 7000:7000 + - 7001:7001 + - 7199:7199 + - 9042:9042 + - 9160:9160 + volumes: + - ./portal.cql:/docker-entrypoint-initdb.d/zzz_portal.cql + - ./portalsdk.cql:/docker-entrypoint-initdb.d/zzz_portalsdk.cql + links: + - portal-db + depends_on: + portal-db: + condition: service_healthy + + # Config files may use hostname "portal-zk" + portal-zk: + image: ${ZK_IMG_NAME}:${PORTAL_TAG} + expose: + - 2181 + ports: + - 2181:2181 - # An environment variable here CAN override the database URL; - # instead the value in the config file uses hostname from above + # The app config file uses the docker name above portal-wms: image: ${WMS_IMG_NAME}:${PORTAL_TAG} expose: @@ -29,55 +83,80 @@ services: links: - portal-db depends_on: - - portal-db + portal-db: + condition: service_healthy volumes: - - ${PROJECT_DIR}/etc/ECOMPWIDGETMS/application.properties:/application.properties + - ${PROPS_DIR}/ONAPWIDGETMS/application.properties:/application.properties + - ${PROPS_DIR}/ONAPWIDGETMS/application.yml:/application.yml command: - - /wait-for.sh - - -t - - "60" - - portal-db:3306 - - -- - - /start-wms-cmd.sh + - /start-wms.sh logging: driver: json-file - # Environment variables here CANNOT override the database URL because - # two apps use identical configuration keys with different values - portal-apps: + portal-app: image: ${EP_IMG_NAME}:${PORTAL_TAG} - expose: - - 8989 ports: - 8989:8080 - 8010:8009 - 8006:8005 + - 8443:8443 links: - portal-db - portal-wms + - portal-zk + - portal-cassandra depends_on: + portal-db: + condition: service_healthy + portal-wms: + condition: service_started + volumes: + - ${PROPS_DIR}/ONAPPORTAL/system.properties:${WEBAPPS_DIR}/ONAPPORTAL/WEB-INF/conf/system.properties + - ${PROPS_DIR}/ONAPPORTAL/fusion.properties:${WEBAPPS_DIR}/ONAPPORTAL/WEB-INF/fusion/conf/fusion.properties + - ${PROPS_DIR}/ONAPPORTAL/portal.properties:${WEBAPPS_DIR}/ONAPPORTAL/WEB-INF/classes/portal.properties + - ${PROPS_DIR}/ONAPPORTAL/music.properties:${WEBAPPS_DIR}/ONAPPORTAL/WEB-INF/classes/music.properties + - ${PROPS_DIR}/ONAPPORTAL/openid-connect.properties:${WEBAPPS_DIR}/ONAPPORTAL/WEB-INF/classes/openid-connect.properties + - ${PROPS_DIR}/ONAPPORTAL/logback.xml:${WEBAPPS_DIR}/ONAPPORTAL/WEB-INF/classes/logback.xml + - ./${TOMCAT_TRUST}:${TOMCAT_DIR}/${TOMCAT_TRUST} + - ./${TOMCAT_KEY}:${TOMCAT_DIR}/${TOMCAT_KEY} + - ${LOGS_DIR}:${TOMCAT_DIR}/logs + command: + - /start-apache-tomcat.sh + # see comments in .env file + - -i + - $EXTRA_HOST_IP + - -n + - $EXTRA_HOST_NAME + logging: + driver: json-file + environment: + - CATALINA_OPTS=-Xmx1536m -Xms1536m + - javax.net.ssl.keyStore=${TOMCAT_DIR}/${TOMCAT_TRUST} + - javax.net.ssl.keyStorePassword=${CERT_PWD} + - javax.net.ssl.trustStore=${TOMCAT_DIR}/${TOMCAT_TRUST} + - javax.net.ssl.trustStorePassword=${CERT_PWD} + portal-sdk: + image: ${SDK_IMG_NAME}:${PORTAL_TAG} + ports: + - 8990:8080 + links: - portal-db - portal-wms + - portal-zk + - portal-cassandra + depends_on: + portal-db: + condition: service_healthy volumes: - - ${PROJECT_DIR}/etc/ECOMPPORTALAPP/system.properties:${WEBAPPS_DIR}/ECOMPPORTAL/WEB-INF/conf/system.properties - - ${PROJECT_DIR}/etc/ECOMPPORTALAPP/fusion.properties:${WEBAPPS_DIR}/ECOMPPORTAL/WEB-INF/fusion/conf/fusion.properties - - ${PROJECT_DIR}/etc/ECOMPPORTALAPP/portal.properties:${WEBAPPS_DIR}/ECOMPPORTAL/WEB-INF/classes/portal.properties - - ${PROJECT_DIR}/etc/ECOMPPORTALAPP/openid-connect.properties:${WEBAPPS_DIR}/ECOMPPORTAL/WEB-INF/classes/openid-connect.properties - - ${PROJECT_DIR}/etc/ECOMPPORTALAPP/logback.xml:${WEBAPPS_DIR}/ECOMPPORTAL/WEB-INF/classes/logback.xml - - ${PROJECT_DIR}/etc/ECOMPSDKAPP/fusion.properties:${WEBAPPS_DIR}/ECOMPSDKAPP/WEB-INF/fusion/conf/fusion.properties - - ${PROJECT_DIR}/etc/ECOMPSDKAPP/system.properties:${WEBAPPS_DIR}/ECOMPSDKAPP/WEB-INF/conf/system.properties - - ${PROJECT_DIR}/etc/ECOMPSDKAPP/portal.properties:${WEBAPPS_DIR}/ECOMPSDKAPP/WEB-INF/classes/portal.properties - - ${PROJECT_DIR}/etc/ECOMPDBCAPP/system.properties:${WEBAPPS_DIR}/ECOMPDBCAPP/WEB-INF/conf/system.properties - - ${PROJECT_DIR}/etc/ECOMPDBCAPP/portal.properties:${WEBAPPS_DIR}/ECOMPDBCAPP/WEB-INF/classes/portal.properties - - ${PROJECT_DIR}/etc/ECOMPDBCAPP/dbcapp.properties:${WEBAPPS_DIR}/ECOMPDBCAPP/WEB-INF/dbcapp/dbcapp.properties - - ${PROJECT_DIR}/etc/ECOMPDBCAPP/fusion.properties:${WEBAPPS_DIR}/ECOMPDBCAPP/WEB-INF/fusion/conf/fusion.properties - - ${PROJECT_DIR}/portal-apps-logs:/opt/apache-tomcat-8.0.37/logs + - ${PROPS_DIR}/ONAPPORTALSDK/fusion.properties:${WEBAPPS_DIR}/ONAPPORTALSDK/WEB-INF/fusion/conf/fusion.properties + - ${PROPS_DIR}/ONAPPORTALSDK/system.properties:${WEBAPPS_DIR}/ONAPPORTALSDK/WEB-INF/conf/system.properties + - ${PROPS_DIR}/ONAPPORTALSDK/portal.properties:${WEBAPPS_DIR}/ONAPPORTALSDK/WEB-INF/classes/portal.properties + - ${PROPS_DIR}/ONAPPORTALSDK/music.properties:${WEBAPPS_DIR}/ONAPPORTALSDK/WEB-INF/classes/music.properties + - ${PROPS_DIR}/ONAPPORTALSDK/logback.xml:${WEBAPPS_DIR}/ONAPPORTALSDK/WEB-INF/classes/logback.xml + - ${LOGS_DIR}:${TOMCAT_DIR}/logs command: - - /wait-for.sh - - -t - - "60" - - portal-db:3306 - - -- - - /start-apps-cmd.sh + - /start-apache-tomcat.sh logging: driver: json-file + environment: + - CATALINA_OPTS=-Xmx1536m -Xms1536m \ No newline at end of file