2017-04-19 1 views
0

나는 elasticsearch를 사용하는 장고 프로젝트에서 작업하고 있습니다. 장고 버전은 1.9.2이며 파이썬 버전은 2.7입니다. Docker 컨테이너 내부에 프로젝트를 배포하고 있습니다. 보통 루트 사용자로 프로세스를 실행합니다. 이미지는 successfuly 빌드되며 모든 것은 elasticsearch를 제외하고는 잘 작동합니다. ElasticSearch를 시작하려고하고 주위에 얻을 수있는 방법이있을 것 같지 않을 때 나는도커에서 루트 사용자로 Elasticsearch 5.2.1을 실행하는 방법

[email protected]:~/arches# elasticsearch-5.2.1/bin/elasticsearch 
[2017-04-19T07:37:13,347][WARN ][o.e.b.ElasticsearchUncaughtExceptionHandler] [] uncaught exception in thread [main] 
org.elasticsearch.bootstrap.StartupException: java.lang.RuntimeException: can not run elasticsearch as root 
     at org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:125) ~[elasticsearch-5.2.1.jar:5.2.1] 
     at org.elasticsearch.bootstrap.Elasticsearch.execute(Elasticsearch.java:112) ~[elasticsearch-5.2.1.jar:5.2.1] 
     at org.elasticsearch.cli.SettingCommand.execute(SettingCommand.java:54) ~[elasticsearch-5.2.1.jar:5.2.1] 
     at org.elasticsearch.cli.Command.mainWithoutErrorHandling(Command.java:122) ~[elasticsearch-5.2.1.jar:5.2.1] 
     at org.elasticsearch.cli.Command.main(Command.java:88) ~[elasticsearch-5.2.1.jar:5.2.1] 
     at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:89) ~[elasticsearch-5.2.1.jar:5.2.1] 
     at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:82) ~[elasticsearch-5.2.1.jar:5.2.1] 
Caused by: java.lang.RuntimeException: can not run elasticsearch as root 
     at org.elasticsearch.bootstrap.Bootstrap.initializeNatives(Bootstrap.java:105) ~[elasticsearch-5.2.1.jar:5.2.1] 
     at org.elasticsearch.bootstrap.Bootstrap.setup(Bootstrap.java:203) ~[elasticsearch-5.2.1.jar:5.2.1] 
     at org.elasticsearch.bootstrap.Bootstrap.init(Bootstrap.java:333) ~[elasticsearch-5.2.1.jar:5.2.1] 
     at org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:121) ~[elasticsearch-5.2.1.jar:5.2.1] 
     ... 6 more 

오류가 발생합니다. ElasticSearch가 루트로 실행할 수없는 이유는 무엇입니까? 고정 컨테이너 내부는 사물이 격리되어 있으며 루트 프로세스는 안전한 것으로 간주됩니다.

+0

, 당신은 Eloasticsearch – user2915097

답변

0

elasticsearch를 루트로 실행하지 않는 것이 좋습니다. 임시 해결책으로 아래 속성을 es.insecure.allow.root으로 설정하여 실행할 수 있습니다. Elasticsearch 루트가 아닌 사용자를 필요로하는 경우

bin/elasticsearch -Des.insecure.allow.root=true 
+0

이 링크를 참조하시기 바랍니다 시작하기 전에 unpriv처럼 권한이없는 사용자를 추가하고 Dockerfile에서 사용자 unpriv' 지시어를 사용해야합니다. 탄성 검색을 루트로 실행하는 것이 안전하지 않은 이유를 설명합니다. https://discuss.elastic.co/t/why-is-it-elasticsearch-is-not-allowed-to-run-as-root/60413/2 – Neeraj

+0

이 작업하지 않습니다. –

+0

우리에게 도커 파일을 보여줄 수 있습니까? – Neeraj

관련 문제