From 856d701b3e91e1c1cb40dec41a235b89c03f9fe1 Mon Sep 17 00:00:00 2001 From: Tim Donohue Date: Wed, 23 Apr 2025 12:07:46 -0500 Subject: [PATCH] Solr 9 compatibility requires minor updates to how Solr image is initialized --- docker/docker-compose-ci.yml | 8 ++++++-- docker/docker-compose-rest.yml | 8 +++++++- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/docker/docker-compose-ci.yml b/docker/docker-compose-ci.yml index 98825605d3..654d1d9bb7 100644 --- a/docker/docker-compose-ci.yml +++ b/docker/docker-compose-ci.yml @@ -93,7 +93,10 @@ services: volumes: # Keep Solr data directory between reboots - solr_data:/var/solr/data - # Initialize all DSpace Solr cores using the mounted configsets (see above), then start Solr + # NOTE: We are not running Solr as "root", but we need root permissions to copy our cores to the mounted + # /var/solr/data directory. Then we start Solr as the "solr" user. + user: root + # Initialize all DSpace Solr cores, then start Solr entrypoint: - /bin/bash - '-c' @@ -111,7 +114,8 @@ services: cp -r /opt/solr/server/solr/configsets/qaevent/* qaevent precreate-core suggestion /opt/solr/server/solr/configsets/suggestion cp -r /opt/solr/server/solr/configsets/suggestion/* suggestion - exec solr -f + chown -R solr:solr /var/solr + runuser -u solr -- solr-foreground volumes: assetstore: pgdata: diff --git a/docker/docker-compose-rest.yml b/docker/docker-compose-rest.yml index e650f09eb5..be037dac3a 100644 --- a/docker/docker-compose-rest.yml +++ b/docker/docker-compose-rest.yml @@ -97,11 +97,16 @@ services: volumes: # Keep Solr data directory between reboots - solr_data:/var/solr/data + # NOTE: We are not running Solr as "root", but we need root permissions to copy our cores to the mounted + # /var/solr/data directory. Then we start Solr as the "solr" user. + user: root # Initialize all DSpace Solr cores using the mounted local configsets (see above), then start Solr # * First, run precreate-core to create the core (if it doesn't yet exist). If exists already, this is a no-op # * Second, copy configsets to this core: # Updates to Solr configs require the container to be rebuilt/restarted: # `docker compose -p d7 -f docker/docker-compose.yml -f docker/docker-compose-rest.yml up -d --build dspacesolr` + # * Third, ensure all new folders are owned by "solr" user + # * Finally, start Solr as the "solr" user via the provided solr-foreground script entrypoint: - /bin/bash - '-c' @@ -119,7 +124,8 @@ services: cp -r /opt/solr/server/solr/configsets/qaevent/* qaevent precreate-core suggestion /opt/solr/server/solr/configsets/suggestion cp -r /opt/solr/server/solr/configsets/suggestion/* suggestion - exec solr -f + chown -R solr:solr /var/solr + runuser -u solr -- solr-foreground volumes: assetstore: pgdata: