# # The contents of this file are subject to the license and copyright # detailed in the LICENSE and NOTICE files at the root of the source # tree and available online at # # http://www.dspace.org/license/ # # Docker Compose for running the DSpace backend for testing/development # This is based heavily on the docker-compose.yml that is available in the DSpace/DSpace # (Backend) at: # https://github.com/DSpace/DSpace/blob/main/docker-compose.yml version: '3.7' networks: dspacenet: services: # DSpace (backend) webapp container dspace: container_name: dspace image: dspace/dspace:dspace-7_x-test depends_on: - dspacedb networks: dspacenet: ports: - published: 8080 target: 8080 stdin_open: true tty: true volumes: - assetstore:/dspace/assetstore - "./local.cfg:/dspace/config/local.cfg" # Mount DSpace's solr configs to a volume, so that we can share to 'dspacesolr' container (see below) - solr_configs:/dspace/solr # Ensure that the database is ready BEFORE starting tomcat # 1. While a TCP connection to dspacedb port 5432 is not available, continue to sleep # 2. Then, run database migration to init database tables # 3. Finally, start Tomcat entrypoint: - /bin/bash - '-c' - | while (! /dev/null 2>&1; do sleep 1; done; /dspace/bin/dspace database migrate catalina.sh run # DSpace database container dspacedb: container_name: dspacedb environment: PGDATA: /pgdata image: dspace/dspace-postgres-pgcrypto networks: dspacenet: ports: - published: 5432 target: 5432 stdin_open: true tty: true volumes: - pgdata:/pgdata # DSpace Solr container dspacesolr: container_name: dspacesolr # Uses official Solr image at https://hub.docker.com/_/solr/ image: solr:8.8 # Needs main 'dspace' container to start first to guarantee access to solr_configs depends_on: - dspace networks: dspacenet: ports: - published: 8983 target: 8983 stdin_open: true tty: true working_dir: /var/solr/data volumes: # Mount our "solr_configs" volume available under the Solr's configsets folder (in a 'dspace' subfolder) # This copies the Solr configs from main 'dspace' container into 'dspacesolr' via that volume - solr_configs:/opt/solr/server/solr/configsets/dspace # Keep Solr data directory between reboots - solr_data:/var/solr/data # Initialize all DSpace Solr cores using the mounted local configsets (see above), then start Solr entrypoint: - /bin/bash - '-c' - | init-var-solr precreate-core authority /opt/solr/server/solr/configsets/dspace/authority precreate-core oai /opt/solr/server/solr/configsets/dspace/oai precreate-core search /opt/solr/server/solr/configsets/dspace/search precreate-core statistics /opt/solr/server/solr/configsets/dspace/statistics exec solr -f volumes: assetstore: pgdata: solr_data: # Special volume used to share Solr configs from 'dspace' to 'dspacesolr' container (see above) solr_configs: