2017-04-05 2 views
4

Docker 컨테이너에서 Elasticsearch 노드를 실행하려고합니다. 보안을 위해 Search Guard 플러그인을 사용하고 있습니다. 그러나 설치 프로세스 중에 플러그인은 스크립트를 실행해야합니다. 이 스크립트는 ElasticSearch가 실행될 때 포트 9300에서 ElasticSearch에 도달 할 것을 요구했습니다. 지연된 스크립트의 모범 사례가 있습니까? 우리는 실행과 RUN 및 CMD Dockerfile 명령 전에 sleeping을 시도했습니다.요청이있는 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 시작 스크립트가 실행되었습니다.

파일 당 하나의 명령 만있을 수 있으므로 기본 탄성 이미지 (ElasticSearch Docker GitHub)를보고 추가해야했습니다.

CMD [ "/ 빈/bash는", "빈/ES-고정 표시기", "검색 가드/run-sgadmin.sh"]

+1

당신은 여기 https://github.com/deviantony 볼 수/docker-elk/tree/searchguard –

관련 문제