在Docker中运行时向Solr添加字段?
我在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", "
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将外部文件复制到容器中。谢谢谢谢,但如果你不举个例子,对我们来说是没有用的