在Docker运行期间在Elasticsearch中设置映射
我将使用官方Elasticsearch图像。 我想要做的是在Docker运行期间设置索引的映射。
所以我需要在容器启动后立即执行。
curl -XPUT localhost:9200 / _template / http_request -d {…..}
所以我不能在Dockerfile中做,或者我可以吗?
谢谢
我结束了这样做
泊坞窗,composer.yml
version: '2' services: elasticsearch: image: elasticsearch:2.3 command: elasticsearch -Des.network.host=0.0.0.0 ports: - "9200:9200" - "9300:9300" elasticsearch-mapping-init: build: elasticsearch-mapping-init links: - elasticsearch depends_on: - elasticsearch
这里是我的elasticsearch-mapping-init / Dockerfile:
FROM ubuntu # Install packages RUN apt-get update && \ apt-get install -y curl COPY docker-entrypoint.sh / ENTRYPOINT ["/docker-entrypoint.sh"]
这里是我的elasticsearch-mapping-init / docker-entrypoint.sh
#!/bin/bash for i in {30..0}; do if curl elasticsearch:9200; then curl -XPUT elasticsearch:9200/_template/log -d ' { "template" : "log-*", "settings": { "number_of_shards": 1 }, "mappings" : { } }'; break; fi sleep 2 done
我相信这并不完美,我仍然在寻找更好的解决scheme。