我正在尝试编写一个shell脚本来在docker容器中运行solr。我写了以下脚本,但它不起作用。但是当我在终端中逐步提供相同的命令时,它可以正常工作。
#!/bin/bash
#pull solr image
docker pull makuk66/docker-solr
#run solr on a single server
SOLR_CONTAINER=$(docker run -d -p 8983:8983 -t makuk66/docker-solr)
#create solr core
docker exec -it --user=solr $SOLR_CONTAINER bin/solr create_core -c gettingstarted
#load data using bin/post from example directory in solr installation directory
docker exec -it --user=solr $SOLR_CONTAINER bin/post -c gettingstarted example/films/films.json
答案 0 :(得分:0)
我相信solr docker的创建者没有使用卷等等,这使得持久性/配置变得更难。您获得的错误是solr未运行时出现的错误。
create_core命令只发布到localhost的solr。
不同/更好的方法是将核心创建为构建的一部分。创建一个Dockerfile并扩展。
创建核心的我的Dockerfile:
FROM makuk66/docker-solr
WORKDIR /opt/solr/server/solr/
ADD . /opt/solr/server/solr/
USER root
RUN chown -R solr /opt/solr/server/solr
USER solr
那是ADD。是添加一个目录(我的核心),其中包含一个空的core.properties和另一个包含schema.xml和solrconfig.xml的导演(conf)