version: "3" services: is-manager: build: ./dnet-app/apps/dnet-is-manager expose: - ${SPRING_BOOT_PORT} networks: - backend - frontend environment: - DNET_IS_URL=http://is-manager:${SPRING_BOOT_PORT} - LOGGING_LEVEL_EU_DNETLIB=INFO profiles: - base context-manager: build: ./dnet-app/apps/dnet-context-manager expose: - ${SPRING_BOOT_PORT} networks: - backend depends_on: - is-manager - db-main environment: - DNET_IS_URL=http://is-manager:${SPRING_BOOT_PORT} - SPRING_DATASOURCE_URL=jdbc:postgresql://db-main:${PG_PORT}/${PG_CONTEXTS_DB} - SPRING_DATASOURCE_USERNAME=${PG_USER} - SPRING_DATASOURCE_PASSWORD=${PG_PASSWORD} profiles: - contexts vocabulary-manager: build: ./dnet-app/apps/dnet-vocabulary-manager expose: - ${SPRING_BOOT_PORT} networks: - backend depends_on: - is-manager - db-main environment: - DNET_IS_URL=http://is-manager:${SPRING_BOOT_PORT} - SPRING_DATASOURCE_URL=jdbc:postgresql://db-main:${PG_PORT}/${PG_VOCS_DB} - SPRING_DATASOURCE_USERNAME=${PG_USER} - SPRING_DATASOURCE_PASSWORD=${PG_PASSWORD} profiles: - vocs dsm: build: ./dnet-app/apps/dnet-datasource-manager expose: - ${SPRING_BOOT_PORT} networks: - backend depends_on: - db-main - is-manager environment: - DNET_IS_URL=http://is-manager:${SPRING_BOOT_PORT} - SPRING_DATASOURCE_URL=jdbc:postgresql://db-main:${PG_PORT}/${PG_DSM_DB} - SPRING_DATASOURCE_USERNAME=${PG_USER} - SPRING_DATASOURCE_PASSWORD=${PG_PASSWORD} profiles: - dsm index-manager: build: ./dnet-app/apps/dnet-index-manager expose: - ${SPRING_BOOT_PORT} networks: - backend depends_on: - db-main - is-manager environment: - DNET_IS_URL=http://is-manager:${SPRING_BOOT_PORT} - SPRING_DATASOURCE_URL=jdbc:postgresql://db-main:${PG_PORT}/${PG_INDEX_DB} - SPRING_DATASOURCE_USERNAME=${PG_USER} - SPRING_DATASOURCE_PASSWORD=${PG_PASSWORD} - SOLR_URLS=http://solr-1:${SOLR_PORT}/solr - ZOOKEEPER_SERVER=zoo-1 profiles: - index mdsm: build: ./dnet-app/apps/dnet-mdstore-manager expose: - ${SPRING_BOOT_PORT} networks: - backend depends_on: - db-main - db-mdstores-data - is-manager environment: - DNET_IS_URL=http://is-manager:${SPRING_BOOT_PORT} - SPRING_DATASOURCE_URL=jdbc:postgresql://db-main:${PG_PORT}/${PG_MDSTORES_DB} - SPRING_DATASOURCE_USERNAME=${PG_USER} - SPRING_DATASOURCE_PASSWORD=${PG_PASSWORD} - MDSTORES_DATA_DATASOURCE_URL=jdbc:postgresql://db-mdstores-data:${PG_PORT}/${PG_MDSTORES_DATA_DB} - MDSTORES_DATA_DATASOURCE_USERNAME=${PG_USER} - MDSTORES_DATA_DATASOURCE_PASSWORD=${PG_PASSWORD} profiles: - mdstores oai-manager: build: ./dnet-app/apps/dnet-oai-manager expose: - ${SPRING_BOOT_PORT} networks: - backend depends_on: - db-oai - is-manager environment: - DNET_IS_URL=http://is-manager:${SPRING_BOOT_PORT} - SPRING_DATASOURCE_URL=jdbc:postgresql://db-oai:${PG_PORT}/${PG_OAI_DB} - SPRING_DATASOURCE_USERNAME=${PG_USER} - SPRING_DATASOURCE_PASSWORD=${PG_PASSWORD} profiles: - oai resource-manager: build: ./dnet-app/apps/dnet-resource-manager expose: - ${SPRING_BOOT_PORT} networks: - backend depends_on: - db-main - is-manager environment: - DNET_IS_URL=http://is-manager:${SPRING_BOOT_PORT} - SPRING_DATASOURCE_URL=jdbc:postgresql://db-main:${PG_PORT}/${PG_RESOURCES_DB} - SPRING_DATASOURCE_USERNAME=${PG_USER} - SPRING_DATASOURCE_PASSWORD=${PG_PASSWORD} profiles: - base wf-aggregation-postgres: build: ./dnet-app/apps/dnet-wf-aggregation-postgres expose: - ${SPRING_BOOT_PORT} networks: - backend depends_on: - db-main - db-mdstores-data - is-manager environment: - LOGGING_LEVEL_EU_DNETLIB=DEBUG - DNET_IS_URL=http://is-manager:${SPRING_BOOT_PORT} - SPRING_DATASOURCE_URL=jdbc:postgresql://db-main:${PG_PORT}/${PG_WFS_DB} - SPRING_DATASOURCE_USERNAME=${PG_USER} - SPRING_DATASOURCE_PASSWORD=${PG_PASSWORD} - MDSTORES_DATA_DATASOURCE_URL=jdbc:postgresql://db-mdstores-data:${PG_PORT}/${PG_MDSTORES_DATA_DB} - MDSTORES_DATA_DATASOURCE_USERNAME=${PG_USER} - MDSTORES_DATA_DATASOURCE_PASSWORD=${PG_PASSWORD} - SOLR_URLS=http://solr-1:${SOLR_PORT}/solr - ZOOKEEPER_SERVER=zoo-1 - OAI_DATABASE_URL=jdbc:postgresql://db-oai:${PG_PORT}/${PG_OAI_DB} - OAI_DATABASE_USERNAME=${PG_USER} - OAI_DATABASE_PASSWORD=${PG_PASSWORD} volumes: - /Users/michele/Develop/istiOpenPortal/puma_import/data:/var/lib/dnet/puma_import profiles: - wfs wf-manager: build: ./dnet-app/apps/dnet-wf-manager expose: - ${SPRING_BOOT_PORT} networks: - backend depends_on: - db-main - is-manager environment: - DNET_IS_URL=http://is-manager:${SPRING_BOOT_PORT} - SPRING_DATASOURCE_URL=jdbc:postgresql://db-main:${PG_PORT}/${PG_WFS_DB} - SPRING_DATASOURCE_USERNAME=${PG_USER} - SPRING_DATASOURCE_PASSWORD=${PG_PASSWORD} - LOGGING_LEVEL_EU_DNETLIB=DEBUG profiles: - wfs mail-sender: build: ./dnet-app/apps/dnet-email-sender expose: - ${SPRING_BOOT_PORT} networks: - backend depends_on: - is-manager environment: - DNET_IS_URL=http://is-manager:${SPRING_BOOT_PORT} profiles: - mail db-main: image: postgres:15.4 restart: always expose: - ${PG_PORT} networks: - backend environment: POSTGRES_USER: ${PG_USER} POSTGRES_PASSWORD: ${PG_PASSWORD} POSTGRES_DB: ${PG_RESOURCES_DB} POSTGRES_DB_DSM: ${PG_DSM_DB} POSTGRES_DB_WFS: ${PG_WFS_DB} POSTGRES_DB_VOCS: ${PG_VOCS_DB} POSTGRES_DB_CONTEXTS: ${PG_CONTEXTS_DB} POSTGRES_DB_MDSTORES: ${PG_MDSTORES_DB} POSTGRES_DB_INDEX: ${PG_INDEX_DB} volumes: - pg_main_data:/var/lib/postgresql/data - ./data/sql/resources.sql:/docker-entrypoint-initdb.d/init_01_resources.sql - ./data/sql/dsm.sql:/docker-entrypoint-initdb.d/init_02_dsm.sql - ./data/sql/wfs.sql:/docker-entrypoint-initdb.d/init_03_wfs.sql - ./data/sql/vocabularies.sql:/docker-entrypoint-initdb.d/init_04_vocabularies.sql - ./data/sql/contexts.sql:/docker-entrypoint-initdb.d/init_05_contexts.sql - ./data/sql/mdstores.sql:/docker-entrypoint-initdb.d/init_06_mdstores.sql - ./data/sql/index_configs.sql:/docker-entrypoint-initdb.d/init_07_index_configs.sql - ./data/sql/instances/openportals.sql:/docker-entrypoint-initdb.d/init_99_openportals.sql profiles: - base db-oai: image: postgres:15.4 restart: always expose: - ${PG_PORT} networks: - backend environment: POSTGRES_DB: ${PG_OAI_DB} POSTGRES_USER: ${PG_USER} POSTGRES_PASSWORD: ${PG_PASSWORD} volumes: - ./data/sql/oai.sql:/docker-entrypoint-initdb.d/init.sql - pg_oai_data:/var/lib/postgresql/data profiles: - oai - wfs db-mdstores-data: image: postgres:15.4 restart: always expose: - ${PG_PORT} networks: - backend environment: POSTGRES_DB: ${PG_MDSTORES_DATA_DB} POSTGRES_USER: ${PG_USER} POSTGRES_PASSWORD: ${PG_PASSWORD} volumes: - ./data/sql/mdstores_data.sql:/docker-entrypoint-initdb.d/init.sql - pg_mdstores_data:/var/lib/postgresql/data profiles: - mdstores - wfs solr-1: image: solr:9.4.0 container_name: solr-1 ports: - ${SOLR_PORT}:${SOLR_PORT} expose: - ${SOLR_PORT} environment: - ZK_HOST=zoo-1:2181 - SOLR_HOST=localhost # For DEV only, it permits unit tests networks: - solr - frontend depends_on: - zoo-1 profiles: - index zoo-1: image: zookeeper:3.7.2 container_name: zoo-1 restart: always hostname: zoo-1 volumes: - zoo1data:/data ports: - 2181:2181 - 7001:7000 environment: ZOO_MY_ID: 1 ZOO_SERVERS: server.1=zoo-1:2888:3888;2181 ZOO_4LW_COMMANDS_WHITELIST: mntr, conf, ruok ZOO_CFG_EXTRA: "metricsProvider.className=org.apache.zookeeper.metrics.prometheus.PrometheusMetricsProvider metricsProvider.httpPort=7000 metricsProvider.exportJvmInfo=true" networks: - solr - frontend profiles: - index angular-dev: build: context: ./dnet-app/frontends/is dockerfile: dockerfile.dev ports: - 4200 networks: - backend volumes: - /app/node_modules - ./dnet-app/frontends/is:/app profiles: - ui web-dev: image: nginx volumes: - ./data/nginx-templates/development.conf.template:/etc/nginx/templates/default.conf.template ports: - ${PUBLIC_PORT}:${PUBLIC_PORT} - ${PUBLIC_API_PORT}:${PUBLIC_API_PORT} networks: - frontend - backend environment: - NGINX_PORT=${PUBLIC_PORT} - API_PORT=${PUBLIC_API_PORT} - SPRING_BOOT_PORT=${SPRING_BOOT_PORT} depends_on: - is-manager - angular-dev profiles: - ui networks: solr: backend: frontend: volumes: solrdata: pg_main_data: pg_mdstores_data: pg_oai_data: zoo1data: