Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/solr/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Docker中运行时向Solr添加字段?_Docker_Solr_Docker Compose_Solr Schema - Fatal编程技术网

在Docker中运行时向Solr添加字段?

在Docker中运行时向Solr添加字段?,docker,solr,docker-compose,solr-schema,Docker,Solr,Docker Compose,Solr Schema,我在Docker经营Solr。我需要在模式中添加一些自定义字段。 这通常由类似于以下命令的命令完成: curl -X POST -H 'Content-type:application/json' --data-binary '{ "add-field":{ "name":"shelf", "type":"myNewTxtField", "stored":true }, "add-field":{ "name":"location", "

我在Docker经营Solr。我需要在模式中添加一些自定义字段。 这通常由类似于以下命令的命令完成:

curl -X POST -H 'Content-type:application/json' --data-binary '{
  "add-field":{
     "name":"shelf",
     "type":"myNewTxtField",
     "stored":true },
  "add-field":{
     "name":"location",
     "type":"myNewTxtField",
     "stored":true },
  "add-copy-field":{
     "source":"shelf",
      "dest":[ "location", "catchall" ]}
}' http://localhost:8983/solr/gettingstarted/schema
但是我已经将我的Solr移动到Docker容器,我不知道如何在Docker-compose.yml中执行同样的操作

My docker-compose.yml使用以下命令启动Solr:

solr:
    image: "solr:7.3.1"
...
command: 'bash -e -c "
        precreate-core mycore;
        cp -r /opt/solr/server/solr/configsets/_default /opt/solr/server/solr/configsets/mycore;
        cp /tmp/myconf/solr-mapping.xml /opt/solr/server/solr/configsets/mycore/conf/;
        rm /opt/solr/server/solr/configsets/mycore/conf/managed-schema;
        solr-foreground;
      "'

任何建议如何做到这一点将不胜感激

好吧,我知道怎么做了

我从默认的schema.xml创建了schema.xml,并在其中添加了字段。 然后我将这个文件复制到容器中,并在命令中将schema.xml复制到core的conf文件夹中


在solr映像的/opt/solr/server/solr/configsets/_default/conf文件夹中有一个文件管理模式,它是一个xml文件,但没有扩展名

必须使用cp命令从原始容器导出:

docker cp [your_solr_container]:/opt/solr/server/solr/configsets/_default/conf/managed-schema c:/your_folder/managed-schema
现在您有了基本文件,可以添加新字段并从docker compose传递到docker容器中:

version: '3.3'
    services:
      solr:
        image: "solr:7.3.1"
        ports:
         - "8983:8983"
        volumes:
          - ./managed-schema:/opt/solr/server/solr/configsets/_default/conf/managed-schema
        entrypoint:
          - docker-entrypoint.sh
          - solr-precreate
          - mycore

能否将您的最终docker-compose.yml添加到您的答案中?这对我不起作用,而且根据Docker compose GitHub的问题,不可能通过Docker compose将外部文件复制到容器中。谢谢谢谢,但如果你不举个例子,对我们来说是没有用的