diu*_*lde 6 elasticsearch docker elasticsearch-plugin docker-compose
我有一个带有弹性搜索图像的docker-compose.yml文件:
elasticsearch:
image: elasticsearch
ports:
- "9200:9200"
container_name: custom_elasticsearch_1
Run Code Online (Sandbox Code Playgroud)
如果我想安装其他插件,如HQ接口或附件映射器,我必须使用以下命令进行手动安装:
$ docker exec custom_elasticsearch_1 plugin install royrusso/elasticsearch-HQ
$ docker exec custom_elasticsearch_1 plugin install mapper-attachments
Run Code Online (Sandbox Code Playgroud)
有没有办法在我运行docker-compose up命令时自动安装它们?
Big*_*ood 11
受到@NickPridorozhko 回答的启发,但使用 elasticsearch^7.0.0(使用 docker stack / swarm)进行更新和测试,例如 analysis-icu:
elasticsearch:
image: docker.elastic.co/elasticsearch/elasticsearch:7.3.0
user: elasticsearch
command: >
/bin/sh -c "./bin/elasticsearch-plugin list | grep -q analysis-icu
|| ./bin/elasticsearch-plugin install analysis-icu;
/usr/local/bin/docker-entrypoint.sh"
...
Run Code Online (Sandbox Code Playgroud)
主要区别在于 ^7.0.0 的更新命令,以及使用 docker 入口点而不是 ./bin/elasticsearch(在堆栈的上下文中,您会收到与可生成进程限制相关的错误)。
fyl*_*lie 10
这是Elastic的博客文章,正是如此!您需要使用Dockerfile执行命令来扩展图像.你的Dockerfile看起来像这样:
FROM custom_elasticsearch_1
RUN plugin install royrusso/elasticsearch-HQ
Run Code Online (Sandbox Code Playgroud)
ingest-attachment 插件需要额外的权限,并在安装过程中提示用户。我使用了yes命令:
elasticsearch:
image: elasticsearch:6.8.12
command: >
/bin/sh -c "./bin/elasticsearch-plugin list | grep -q ingest-attachment
|| yes | ./bin/elasticsearch-plugin install --silent ingest-attachment;
/usr/local/bin/docker-entrypoint.sh eswrapper"
Run Code Online (Sandbox Code Playgroud)
这对我有用。先安装插件,然后继续启动elasticsearch。
elasticsearch:
image: elasticsearch
command:
- sh
- -c
- "plugin list | grep -q plugin_name || plugin install plugin_name;
/docker-entrypoint.sh elasticsearch"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5053 次 |
| 最近记录: |