Tag: dockerfile elasticsearch

如何在Docker容器启动后自动运行脚本

我使用Search Guard插件来保护由多个节点组成的elasticsearch集群。 这是我的Dockerfile: #!/bin/sh FROM docker.elastic.co/elasticsearch/elasticsearch:5.6.3 USER root # Install search guard RUN bin/elasticsearch-plugin install –batch com.floragunn:search-guard-5:5.6.3-16 \ && chmod +x \ plugins/search-guard-5/tools/hash.sh \ plugins/search-guard-5/tools/sgadmin.sh \ bin/init_sg.sh \ && chown -R elasticsearch:elasticsearch /usr/share/elasticsearch USER elasticsearch 初始化SearchGuard(创build内部用户并分配angular色)。 我需要在容器启动后运行脚本init_sg.sh 。 这里是问题:除非运行elasticsearch,脚本不会初始化任何安全索引。 该脚本的内容是: sleep 10 plugins/search-guard-5/tools/sgadmin.sh -cd config/ -ts config/truststore.jks -ks config/kirk-keystore.jks -nhnv -icl 现在,我刚刚在容器启动后手动运行该脚本,但是因为我正在Kubernetes上运行脚本。Pod可能会因为某种原因被杀死或失败并自动重新创build。 在这种情况下,插件必须在容器启动后自动初始化! 那么如何做到这一点? 任何帮助或提示将非常感激。