2017-04-05 5 views
4

DockerコンテナでElasticsearchノードを実行しようとしています。私たちはセキュリティのためにSearch Guardプラグインを使用しています。ただし、インストールプロセス中、プラグインではスクリプトを実行する必要があります。このスクリプトでは、実行時にポート9300でElasticSearchにアクセスできることが必要でした。遅延スクリプトのベストプラクティスはありますか?私たちは実行前にスリープ状態にして、RUNとCMD Dockerfileコマンドを試しました。ここでリクエストのあるDocker Elasticsearchプラグイン

が出力されます。

elasticsearch | Search Guard Admin v5 
elasticsearch | Will connect to localhost:9300 
elasticsearch | ERR: Seems there is no elasticsearch running on 
localhost:9300 - Will exit 

Dockerfile:

FROM docker.elastic.co/elasticsearch/elasticsearch:5.3.0 

USER root 

RUN apk update \ 
    && apk upgrade \ 
    && apk add nano 

USER root 

# Add the ElasticSeach config 
ADD elasticsearch.yml /usr/share/elasticsearch/config/ 
RUN chown elasticsearch:elasticsearch /usr/share/elasticsearch/config/elasticsearch.yml 

# Add the truststore 
ADD keys/truststore.jks /usr/share/elasticsearch/config/ 
RUN chown elasticsearch:elasticsearch /usr/share/elasticsearch/config/truststore.jks 

# Create the node certs 
ADD gen-cert/ /usr/share/elasticsearch/gen-cert/ 
WORKDIR /usr/share/elasticsearch/gen-cert 
RUN ./gen_node_cert.sh 0 ######### ######### 
RUN cp node-keystore.jks /usr/share/elasticsearch/config/ 

# Prep for boot! 
WORKDIR /usr/share/elasticsearch/ 
USER elasticsearch 

RUN /usr/share/elasticsearch/bin/elasticsearch-plugin install -b com.floragunn:search-guard-5:5.3.0-11 
RUN chmod +x -R /usr/share/elasticsearch/plugins/search-guard-5/tools/ 

# Run the security script on start 
CMD sleep 10 && /usr/share/elasticsearch/plugins/search-guard-5/tools/sgadmin.sh \ 
     -cd /usr/share/elasticsearch/plugins/search-guard-5/sgconfig/ \ 
     -cn SHU \ 
     -ks /usr/share/elasticsearch/config/node-keystore.jks \ 
     -kspass Chupacabra \ 
     -ts /usr/share/elasticsearch/config/truststore.jks \ 
     -tspass Chupacabra \ 
     -nhnv 

答えて

5

私たちは、この作業を取得することができました。 Dockerfileの最後のCMDコマンドにスクリプトを追加するだけで、ElasticSearch起動スクリプトの後に実行されました。

ファイルごとに1つのコマンドしかないように見えるので、ベースの弾性画像(ElasticSearch Docker GitHub)を見て追加する必要がありました。

CMD [ "/ binに/ bashの"、 "ビン/ ES-ドッキングウィンドウ"、 "サーチ・ガード/ run-sgadmin.sh"]

+1

あなたもここにhttps://github.com/deviantonyを見ることができます/ docker-elk/tree/searchguard –

関連する問題