Как создать ядро ​​solr, используя механизм расширения изображений docker-solrs? - PullRequest
0 голосов
/ 31 августа 2018

Я хотел бы создать образ док-станции Solr, который создает ядро ​​при запуске. Поэтому я использую механизм расширения docker-entrypoint-initdb.d , описанный для контейнеров Solr Docker. В документации написано

Третий способ создания ядра при запуске - использовать образ механизм расширения поясняется в следующем разделе.

Но это не объясняет, как именно этого добиться.

Dockerfile, который я использую:

FROM solr:6.6

USER root

RUN mkdir /A12Core && chown -R solr:solr /A12Core

COPY --chown=solr:solr ./services-core/search/A12Core /A12Core/
COPY --chown=solr:solr ./create-a12core.sh /docker-entrypoint-initdb.d/

USER solr

RUN chmod -R a+X /A12Core

Папка A12Core содержит файлы конфигурации solr для ядра. А скрипт create-a12core.sh для создания ядра это:

#!/bin/bash

solr-precreate A12Core /A12Core

/A12Core dir содержит следующие файлы:

./core.properties
./conf
./conf/update-script.js
./conf/mapping-ISOLatin1Accent.txt
./conf/schema.xml
./conf/spellings.txt
./conf/solrconfig.xml
./conf/currency.xml
./conf/mapping-FoldToASCII.txt
./conf/_schema_analysis_stopwords_english.json
./conf/stopwords.txt
./conf/synonyms.txt
./conf/elevate.xml
./conf/lang
./conf/lang/stopwords_en.txt
./conf/lang/stopwords_de.txt

Однако при запуске сборки образа с помощью приведенного выше Dockerfile и сценария создается бесконечный цикл. Выход:

/opt/docker-solr/scripts/solr-foreground: running /docker-entrypoint-initdb.d/create-a12core.sh
Executing /opt/docker-solr/scripts/solr-precreate A12Core /A12Core
/opt/docker-solr/scripts/solr-precreate: running /docker-entrypoint-initdb.d/create-a12core.sh
Executing /opt/docker-solr/scripts/solr-precreate A12Core /A12Core
/opt/docker-solr/scripts/solr-precreate: running /docker-entrypoint-initdb.d/create-a12core.sh
Executing /opt/docker-solr/scripts/solr-precreate A12Core /A12Core
/opt/docker-solr/scripts/solr-precreate: running /docker-entrypoint-initdb.d/create-a12core.sh
...

Как создать ядро, используя механизм расширения docker-entrypoint-initdb.d?

1 Ответ

0 голосов
/ 05 сентября 2018

Укажите местоположение файла предопределенного ядра, которое должно быть выполнено, поэтому отредактируйте файл create-a12core.sh, как указано ниже

 #!/bin/bash
 /opt/docker-solr/scripts/precreate-core  A12Core /A12Core

Проверено и работает !!!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...