dnet-docker/docker-compose.yml

213 lines
5.3 KiB
YAML

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_MAIN_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_MAIN_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}
indexer:
build: ./dnet-app/apps/dnet-indexer-solr
expose:
- ${SPRING_BOOT_PORT}
networks:
- backend
depends_on:
- db-main
environment:
- SPRING_DATASOURCE_URL=jdbc:postgresql://db-main:${PG_PORT}/${PG_MAIN_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_MAIN_DB}
- SPRING_DATASOURCE_USERNAME=${PG_USER}
- SPRING_DATASOURCE_PASSWORD=${PG_PASSWORD}
oai-exporter:
build: ./dnet-app/apps/dnet-oai-exporter
expose:
- ${SPRING_BOOT_PORT}
networks:
- backend
depends_on:
- db-main
environment:
- SPRING_DATASOURCE_URL=jdbc:postgresql://db-main:${PG_PORT}/${PG_MAIN_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_MAIN_DB}
- SPRING_DATASOURCE_USERNAME=${PG_USER}
- SPRING_DATASOURCE_PASSWORD=${PG_PASSWORD}
wf-exec-postgres:
build: ./dnet-app/apps/dnet-wf-executor-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
depends_on:
- db-main
environment:
- SPRING_DATASOURCE_URL=jdbc:postgresql://db-main:${PG_PORT}/${PG_MAIN_DB}
- SPRING_DATASOURCE_USERNAME=${PG_USER}
- SPRING_DATASOURCE_PASSWORD=${PG_PASSWORD}
db-main:
image: postgres:15.4
restart: always
expose:
- ${PG_PORT}
networks:
- backend
environment:
POSTGRES_DB: ${PG_MAIN_DB}
POSTGRES_DSM_DB: ${PG_DSM_DB}
POSTGRES_WFS_DB: ${PG_WFS_DB}
POSTGRES_USER: ${PG_USER}
POSTGRES_PASSWORD: ${PG_PASSWORD}
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
db-mdstores:
image: postgres:15.4
restart: always
expose:
- ${PG_PORT}
networks:
- backend
environment:
POSTGRES_USER: ${PG_USER}
POSTGRES_PASSWORD: ${PG_PASSWORD}
POSTGRES_DB: ${PG_MDSTORE_DB}
volumes:
- ./data/sql/mdstores:/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}
volumes:
- /app/node_modules
- .:/app
- ./data/nginx-templates:/etc/nginx/templates
environment:
- NGINX_PORT=${PUBLIC_PORT}
networks:
- frontend
- backend
depends_on:
- context-manager
- dsm
- mail-sender
- indexer
- mdsm
- oai-exporter
- resource-manager
- vocabulary-manager
- wf-exec-postgres
- wf-manager
networks:
backend:
frontend:
volumes:
solrdata:
pg_main_data:
pg_mdstore_data: