From fc63661fbd9261b766f995b3e04904af18184ee3 Mon Sep 17 00:00:00 2001 From: andryyy Date: Tue, 12 Mar 2019 23:15:26 +0100 Subject: [PATCH] [Solr] Change default configset before bootstrapping [Solr] Bootstrap cannot be omitted and must occur before mounting the data directory --- data/Dockerfiles/solr/Dockerfile | 6 +++- data/Dockerfiles/solr/docker-entrypoint.sh | 33 +++++-------------- .../solr/solr-config-7.7.0.xml | 0 .../solr/solr-schema-7.7.0.xml | 3 +- 4 files changed, 16 insertions(+), 26 deletions(-) mode change 100755 => 100644 data/Dockerfiles/solr/docker-entrypoint.sh rename data/{conf => Dockerfiles}/solr/solr-config-7.7.0.xml (100%) rename data/{conf => Dockerfiles}/solr/solr-schema-7.7.0.xml (95%) diff --git a/data/Dockerfiles/solr/Dockerfile b/data/Dockerfiles/solr/Dockerfile index 25235664..1c74fde8 100644 --- a/data/Dockerfiles/solr/Dockerfile +++ b/data/Dockerfiles/solr/Dockerfile @@ -1,8 +1,12 @@ FROM solr:7.7-alpine USER root COPY docker-entrypoint.sh / +COPY solr-config-7.7.0.xml / +COPY solr-schema-7.7.0.xml / + RUN apk --no-cache add su-exec curl tzdata \ - && chmod +x /docker-entrypoint.sh + && chmod +x /docker-entrypoint.sh \ + && bash /docker-entrypoint.sh --bootstrap ENTRYPOINT ["/docker-entrypoint.sh"] diff --git a/data/Dockerfiles/solr/docker-entrypoint.sh b/data/Dockerfiles/solr/docker-entrypoint.sh old mode 100755 new mode 100644 index 0634874f..5a33620d --- a/data/Dockerfiles/solr/docker-entrypoint.sh +++ b/data/Dockerfiles/solr/docker-entrypoint.sh @@ -18,16 +18,10 @@ fi set -e -# allow easier debugging with `docker run -e VERBOSE=yes` -if [[ "$VERBOSE" = "yes" ]]; then - set -x -fi - # run the optional initdb . /opt/docker-solr/scripts/run-initdb # fixing volume permission - [[ -d /opt/solr/server/solr/dovecot-fts/data ]] && chown -R solr:solr /opt/solr/server/solr/dovecot-fts/data if [[ "${1}" != "--bootstrap" ]]; then sed -i '/SOLR_HEAP=/c\SOLR_HEAP="'${SOLR_HEAP:-1024}'m"' /opt/solr/bin/solr.in.sh @@ -35,15 +29,13 @@ else sed -i '/SOLR_HEAP=/c\SOLR_HEAP="256m"' /opt/solr/bin/solr.in.sh fi -# keep a sentinel file so we don't try to create the core a second time -# for example when we restart a container. -# todo: check if a core exists without sentinel file +if [[ "${1}" == "--bootstrap" ]]; then + echo "Creating initial configuration" + echo "Modifying default config set" + cp /solr-config-7.7.0.xml /opt/solr/server/solr/configsets/_default/conf/solrconfig.xml + cp /solr-schema-7.7.0.xml /opt/solr/server/solr/configsets/_default/conf/schema.xml + rm /opt/solr/server/solr/configsets/_default/conf/managed-schema -SENTINEL=/opt/docker-solr/fts_core_created - -if [[ -f ${SENTINEL} ]]; then - echo "skipping core creation" -else echo "Starting local Solr instance to setup configuration" su-exec solr start-local-solr @@ -58,19 +50,12 @@ else done echo "Created core \"dovecot-fts\"" - touch ${SENTINEL} echo "Stopping local Solr" su-exec solr stop-local-solr + + exit 0 fi -rm -f /opt/solr/server/solr/dovecot-fts/conf/schema.xml -rm -f /opt/solr/server/solr/dovecot-fts/conf/managed-schema -rm -f /opt/solr/server/solr/dovecot-fts/conf/solrconfig.xml - -cp /etc/solr/solr-config-7.7.0.xml /opt/solr/server/solr/dovecot-fts/conf/solrconfig.xml -cp /etc/solr/solr-schema-7.7.0.xml /opt/solr/server/solr/dovecot-fts/conf/schema.xml - -chown -R solr:solr /opt/solr/server/solr/dovecot-fts/conf/{schema.xml,solrconfig.xml} - exec su-exec solr solr-foreground + diff --git a/data/conf/solr/solr-config-7.7.0.xml b/data/Dockerfiles/solr/solr-config-7.7.0.xml similarity index 100% rename from data/conf/solr/solr-config-7.7.0.xml rename to data/Dockerfiles/solr/solr-config-7.7.0.xml diff --git a/data/conf/solr/solr-schema-7.7.0.xml b/data/Dockerfiles/solr/solr-schema-7.7.0.xml similarity index 95% rename from data/conf/solr/solr-schema-7.7.0.xml rename to data/Dockerfiles/solr/solr-schema-7.7.0.xml index f66d1eda..31176bd7 100644 --- a/data/conf/solr/solr-schema-7.7.0.xml +++ b/data/Dockerfiles/solr/solr-schema-7.7.0.xml @@ -1,6 +1,6 @@ - + @@ -18,6 +18,7 @@ +