diff --git a/docker/cli.assetstore.yml b/docker/cli.assetstore.yml index 592194a752..c2846286d7 100644 --- a/docker/cli.assetstore.yml +++ b/docker/cli.assetstore.yml @@ -22,7 +22,8 @@ services: networks: dspacenet: {} environment: - - LOADASSETS=https://www.dropbox.com/s/v3ahfcuatklbmi0/assetstore-2019-11-28.tar.gz?dl=1 + # This assetstore zip is available from https://github.com/DSpace-Labs/AIP-Files/releases/tag/demo-entities-data + - LOADASSETS=https://github.com/DSpace-Labs/AIP-Files/releases/download/demo-entities-data/assetstore.tar.gz entrypoint: - /bin/bash - '-c' diff --git a/docker/db.entities.yml b/docker/db.entities.yml index d39eedc5c6..3d4831e151 100644 --- a/docker/db.entities.yml +++ b/docker/db.entities.yml @@ -19,4 +19,5 @@ services: image: dspace/dspace-postgres-pgcrypto:loadsql environment: # This LOADSQL should be kept in sync with the URL in DSpace/DSpace - - LOADSQL=https://www.dropbox.com/s/4ap1y6deseoc8ws/dspace7-entities-2019-11-28.sql?dl=1 + # This SQL is available from https://github.com/DSpace-Labs/AIP-Files/releases/tag/demo-entities-data + - LOADSQL=https://github.com/DSpace-Labs/AIP-Files/releases/download/demo-entities-data/dspace7-entities-2021-04-14.sql \ No newline at end of file diff --git a/docker/docker-compose-ci.yml b/docker/docker-compose-ci.yml index ec2d0912cf..5397e15a8b 100644 --- a/docker/docker-compose-ci.yml +++ b/docker/docker-compose-ci.yml @@ -8,9 +8,13 @@ # Docker Compose for running the DSpace backend for e2e testing in a CI environment # This is used by our GitHub CI at .github/workflows/build.yml +# It is based heavily on the Backend's Docker Compose: +# https://github.com/DSpace/DSpace/blob/main/docker-compose.yml +version: '3.7' networks: dspacenet: services: + # DSpace (backend) webapp container dspace: container_name: dspace depends_on: @@ -26,12 +30,26 @@ services: volumes: - assetstore:/dspace/assetstore - "./local.cfg:/dspace/config/local.cfg" + # 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 + # NOTE: This is customized to use our loadsql image, so that we are using a database with existing test data dspacedb: container_name: dspacedb environment: # This LOADSQL should be kept in sync with the LOADSQL in # https://github.com/DSpace/DSpace/blob/main/dspace/src/main/docker-compose/db.entities.yml - LOADSQL: https://www.dropbox.com/s/4ap1y6deseoc8ws/dspace7-entities-2019-11-28.sql?dl=1 + # This SQL is available from https://github.com/DSpace-Labs/AIP-Files/releases/tag/demo-entities-data + LOADSQL: https://github.com/DSpace-Labs/AIP-Files/releases/download/demo-entities-data/dspace7-entities-2021-04-14.sql PGDATA: /pgdata image: dspace/dspace-postgres-pgcrypto:loadsql networks: @@ -40,9 +58,11 @@ services: tty: true volumes: - pgdata:/pgdata + # DSpace Solr container dspacesolr: container_name: dspacesolr - image: dspace/dspace-solr + # Uses official Solr image at https://hub.docker.com/_/solr/ + image: solr:8.8 networks: dspacenet: ports: @@ -50,16 +70,27 @@ services: target: 8983 stdin_open: true tty: true + working_dir: /var/solr/data volumes: - - solr_authority:/opt/solr/server/solr/authority/data - - solr_oai:/opt/solr/server/solr/oai/data - - solr_search:/opt/solr/server/solr/search/data - - solr_statistics:/opt/solr/server/solr/statistics/data -version: '3.7' + # Mount our local Solr core configs so that they are available as Solr configsets on container + - ./dspace/solr/authority:/opt/solr/server/solr/configsets/authority + - ./dspace/solr/oai:/opt/solr/server/solr/configsets/oai + - ./dspace/solr/search:/opt/solr/server/solr/configsets/search + - ./dspace/solr/statistics:/opt/solr/server/solr/configsets/statistics + # 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/authority + precreate-core oai /opt/solr/server/solr/configsets/oai + precreate-core search /opt/solr/server/solr/configsets/search + precreate-core statistics /opt/solr/server/solr/configsets/statistics + exec solr -f volumes: assetstore: pgdata: - solr_authority: - solr_oai: - solr_search: - solr_statistics: + solr_data: \ No newline at end of file diff --git a/docker/docker-compose-rest.yml b/docker/docker-compose-rest.yml index e6668f3f58..9797bd26e9 100644 --- a/docker/docker-compose-rest.yml +++ b/docker/docker-compose-rest.yml @@ -14,6 +14,7 @@ version: '3.7' networks: dspacenet: services: + # DSpace (backend) webapp container dspace: container_name: dspace image: dspace/dspace:dspace-7_x-test @@ -40,6 +41,7 @@ services: 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: @@ -54,9 +56,11 @@ services: tty: true volumes: - pgdata:/pgdata + # DSpace Solr container dspacesolr: container_name: dspacesolr - image: dspace/dspace-solr + # Uses official Solr image at https://hub.docker.com/_/solr/ + image: solr:8.8 networks: dspacenet: ports: @@ -64,15 +68,27 @@ services: target: 8983 stdin_open: true tty: true + working_dir: /var/solr/data volumes: - - solr_authority:/opt/solr/server/solr/authority/data - - solr_oai:/opt/solr/server/solr/oai/data - - solr_search:/opt/solr/server/solr/search/data - - solr_statistics:/opt/solr/server/solr/statistics/data + # Mount our local Solr core configs so that they are available as Solr configsets on container + - ./dspace/solr/authority:/opt/solr/server/solr/configsets/authority + - ./dspace/solr/oai:/opt/solr/server/solr/configsets/oai + - ./dspace/solr/search:/opt/solr/server/solr/configsets/search + - ./dspace/solr/statistics:/opt/solr/server/solr/configsets/statistics + # 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/authority + precreate-core oai /opt/solr/server/solr/configsets/oai + precreate-core search /opt/solr/server/solr/configsets/search + precreate-core statistics /opt/solr/server/solr/configsets/statistics + exec solr -f volumes: assetstore: pgdata: - solr_authority: - solr_oai: - solr_search: - solr_statistics: + solr_data: