Скопируйте файлы внутри контейнера docker до создания томов (изображение Solr docker с пользовательской конфигурацией) - PullRequest
0 голосов
/ 05 февраля 2020

Мне нужно создать docker контейнер с Solr, для которого создана пользовательская конфигурация. Чтобы создать этот конфиг, когда он установлен не в контейнере docker, мне нужно сделать следующее:

cp -r /opt/solr/server/solr/configsets/basic_configs /opt/solr/server/solr/configsets/myconf

Затем я должен скопировать свою пользовательскую схему. xml в это место:

cp conf/schema.xml solr/server/solr/configsets/myconf/conf

А затем удалите управляемую схему:

rm /opt/solr/server/solr/configsets/nutch/conf/managed-schema

У меня есть docker -compose.yml, который мне нужно изменить, чтобы выполнить те же команды, что и выше:

version: '3.3'
services:
  solr:
    image: "solr:7.3.1"
    ports:
     - "8983:8983"
    volumes:
      - ./solr/conf/solr-mapping.xml:/opt/solr/conf/schema.xml
    entrypoint:
      - docker-entrypoint.sh
      - solr-precreate
      - mycore

схема. xml может go оценивать часть, но я не совсем понимаю, где я должен разместить эти первые команды cp и rm.

Спасибо!

1 Ответ

0 голосов
/ 14 февраля 2020

Вы можете добавить свои команды в ваш docker файл композиции (https://docs.docker.com/compose/compose-file/#command)

version: '3.3'
services:
  solr:
  image: "solr:7.3.1"
  ports:
    - "8983:8983"
  volumes:
      - ./solr/conf/solr-mapping.xml:/opt/solr/conf/schema.xml

  command: 'bash -e -c "precreate-core mycore; cp /opt/solr/conf/schema.xml /opt/solr/server/solr/mycores/mycore/conf/schema.xml; cp /opt/solr/conf/solrconfig.xml /opt/solr/server/solr/mycores/mycore/conf/solrconfig.xml; rm /opt/solr/server/solr/mycores/mycore/conf/managed-schema; solr-foreground;"'

, он работает для меня

...