尝试在docker容器中运行elastic服务时禁用[groovy]的动态脚本

r7xajy2e  于 2021-06-15  发布在  ElasticSearch
关注(0)|答案(1)|浏览(266)

我正在rails应用程序中使用elasticsearch 1.4.4。为了在本地启动它,我从那里下载elastic,解包,添加

script.inline: on
script.indexed: on

elasticsearch-1.4.4/config/elasticsearch.yml 然后跑 elasticsearch-1.4.4/bin/elasticsearch 测试无错误通过。当我尝试将elasticsearch服务作为docker容器启动时,我会执行以下步骤:
添加 Dockerfile.elasticsearch-1.4.4 :

FROM elasticsearch:1.4.4

RUN echo 'script.inline: on' >> /etc/elasticsearch/elasticsearch.yml
RUN echo 'script.indexed: on' >> /etc/elasticsearch/elasticsearch.yml

CMD ["elasticsearch"]

塑造形象:

docker build - < Dockerfile.elasticsearch-1.4.4 -t hirurg103/elasticsearch-1.4.4:1.0

启动容器:

docker run -p 9200:9200 "hirurg103/elasticsearch-1.4.4:1.0"

当我运行测试时,有些测试失败:

nested: ScriptException[dynamic scripting for [groovy] disabled

我试着建立elasticsearch 1.6.1 以及 2.0.0 但错误保持不变
如何更改dockerfile以允许执行elasticsearch服务的脚本?

cyvaqqii

cyvaqqii1#

我能够使用elasticsearch编译docker映像,并从以下dockerfile启用脚本:

FROM elasticsearch:1.4.4

...

RUN echo 'script.inline: on' >> /etc/elasticsearch/elasticsearch.yml
RUN echo 'script.indexed: on' >> /etc/elasticsearch/elasticsearch.yml
RUN echo 'script.disable_dynamic: false' >> /etc/elasticsearch/elasticsearch.yml
...
CMD ["elasticsearch", "-Des.config=/etc/elasticsearch/elasticsearch.yml"]

# Note this line! ^

似乎elasticsearch忽略了配置文件 /etc/elasticsearch/elasticsearch.yml 不知为什么,不知道为什么。如果你有什么想法,可以在评论中分享吗

相关问题