version: "3" services: context-manager: build: ./dnet-app/apps/dnet-context-manager expose: - ${SPRING_BOOT_PORT} networks: - backend depends_on: - db-main environment: - SPRING_DATASOURCE_URL=jdbc:postgresql://db-main:${PG_PORT}/${PG_CONTEXTS_DB} - SPRING_DATASOURCE_USERNAME=${PG_USER} - SPRING_DATASOURCE_PASSWORD=${PG_PASSWORD} vocabulary-manager: build: ./dnet-app/apps/dnet-vocabulary-manager expose: - ${SPRING_BOOT_PORT} networks: - backend depends_on: - db-main environment: - SPRING_DATASOURCE_URL=jdbc:postgresql://db-main:${PG_PORT}/${PG_VOCS_DB} - SPRING_DATASOURCE_USERNAME=${PG_USER} - SPRING_DATASOURCE_PASSWORD=${PG_PASSWORD} dsm: build: ./dnet-app/apps/dnet-datasource-manager expose: - ${SPRING_BOOT_PORT} networks: - backend depends_on: - db-main environment: - SPRING_DATASOURCE_URL=jdbc:postgresql://db-main:${PG_PORT}/${PG_DSM_DB} - SPRING_DATASOURCE_USERNAME=${PG_USER} - SPRING_DATASOURCE_PASSWORD=${PG_PASSWORD} index-manager: build: ./dnet-app/apps/dnet-index-manager expose: - ${SPRING_BOOT_PORT} networks: - backend depends_on: - db-main environment: - SPRING_DATASOURCE_URL=jdbc:postgresql://db-main:${PG_PORT}/${PG_RESOURCES_DB} - SPRING_DATASOURCE_USERNAME=${PG_USER} - SPRING_DATASOURCE_PASSWORD=${PG_PASSWORD} mdsm: build: ./dnet-app/apps/dnet-mdstore-manager expose: - ${SPRING_BOOT_PORT} networks: - backend depends_on: - db-main environment: - SPRING_DATASOURCE_URL=jdbc:postgresql://db-main:${PG_PORT}/${PG_RESOURCES_DB} - SPRING_DATASOURCE_USERNAME=${PG_USER} - SPRING_DATASOURCE_PASSWORD=${PG_PASSWORD} oai-manager: build: ./dnet-app/apps/dnet-oai-manager expose: - ${SPRING_BOOT_PORT} networks: - backend depends_on: - db-main environment: - SPRING_DATASOURCE_URL=jdbc:postgresql://db-main:${PG_PORT}/${PG_RESOURCES_DB} - SPRING_DATASOURCE_USERNAME=${PG_USER} - SPRING_DATASOURCE_PASSWORD=${PG_PASSWORD} resource-manager: build: ./dnet-app/apps/dnet-resource-manager expose: - ${SPRING_BOOT_PORT} networks: - backend depends_on: - db-main environment: - SPRING_DATASOURCE_URL=jdbc:postgresql://db-main:${PG_PORT}/${PG_RESOURCES_DB} - SPRING_DATASOURCE_USERNAME=${PG_USER} - SPRING_DATASOURCE_PASSWORD=${PG_PASSWORD} wf-aggregation-postgres: build: ./dnet-app/apps/dnet-wf-aggregation-postgres expose: - ${SPRING_BOOT_PORT} networks: - backend depends_on: - db-main environment: - SPRING_DATASOURCE_URL=jdbc:postgresql://db-main:${PG_PORT}/${PG_WFS_DB} - SPRING_DATASOURCE_USERNAME=${PG_USER} - SPRING_DATASOURCE_PASSWORD=${PG_PASSWORD} wf-manager: build: ./dnet-app/apps/dnet-wf-manager expose: - ${SPRING_BOOT_PORT} networks: - backend depends_on: - db-main environment: - SPRING_DATASOURCE_URL=jdbc:postgresql://db-main:${PG_PORT}/${PG_WFS_DB} - SPRING_DATASOURCE_USERNAME=${PG_USER} - SPRING_DATASOURCE_PASSWORD=${PG_PASSWORD} mail-sender: build: ./dnet-app/apps/dnet-email-sender expose: - ${SPRING_BOOT_PORT} networks: - backend 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} volumes: - pg_main_data:/var/lib/postgresql/data - ./data/sql/resources.sql:/docker-entrypoint-initdb.d/init_resources.sql - ./data/sql/dsm.sql:/docker-entrypoint-initdb.d/init_dsm.sql - ./data/sql/wfs.sql:/docker-entrypoint-initdb.d/init_wfs.sql - ./data/sql/vocabularies.sql:/docker-entrypoint-initdb.d/init_vocabularies.sql - ./data/sql/contexts.sql:/docker-entrypoint-initdb.d/init_contexts.sql - ./data/sql/mdstores.sql:/docker-entrypoint-initdb.d/init_mdstores.sql db-mdstores: image: postgres:15.4 restart: always expose: - ${PG_PORT} networks: - backend environment: POSTGRES_DB: ${PG_MDSTORE_CONTENT_DB} POSTGRES_USER: ${PG_USER} POSTGRES_PASSWORD: ${PG_PASSWORD} volumes: - ./data/sql/mdstores_data.sql:/docker-entrypoint-initdb.d/init.sql - pg_mdstore_data:/var/lib/postgresql/data solr: image: solr:9.3.0 expose: - ${SOLR_PORT} networks: - backend volumes: - solrdata:/var/solr command: - solr-precreate - gettingstarted web: build: ./dnet-app/frontends/is ports: - ${PUBLIC_PORT}:${PUBLIC_PORT} - ${PUBLIC_API_PORT}:${PUBLIC_API_PORT} volumes: - /app/node_modules - .:/app - ./data/nginx-templates/production.conf.template:/etc/nginx/templates/default.conf.template - ./data/nginx-templates/api.conf.template:/etc/nginx/templates/api.conf.template environment: - NGINX_PORT=${PUBLIC_PORT} - API_PORT=${PUBLIC_API_PORT} - SPRING_BOOT_PORT=${SPRING_BOOT_PORT} networks: - frontend - backend depends_on: - context-manager - dsm - mail-sender - index-manager - mdsm - oai-manager - resource-manager - vocabulary-manager - wf-aggregation-postgres - wf-manager networks: backend: frontend: volumes: solrdata: pg_main_data: pg_mdstore_data: