2017-04-19 10 views
0

私はelasticsearchを使用するDjangoプロジェクトに取り組んでいます.Djangoのバージョンは1.9.2、Pythonのバージョンは2.7です。私はDockerコンテナの内部にプロジェクトを展開しています。通常、rootユーザーとしてプロセスを実行します。画像は正常に構築され、すべてがelasticsearch以外は正常に動作します。 ElasticSearchを起動しようとし、それを回避する方法があるようには思えないとき、私はElasticsearch 5.2.1をdockerのrootユーザーとして実行する

[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

Elasticsearchは、root以外のユーザーを必要とする場合、あなたはunprivのような非特権ユーザーを追加する必要がある、とEloasticsearch – user2915097

答えて

0

elasticsearchをrootとして実行することはお勧めできません。一時的な解決策として、以下の行にプロパティes.insecure.allow.rootを有効にすることで実行できます。

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

を開始する前に、あなたのDockerfileでユーザーunpriv'ディレクティブを使用します。このリンクをご覧ください。それは、根として弾性検索を実行することが安全でない理由を説明します。 https://discuss.elastic.co/t/why-is-it-elasticsearch-is-not-allowed-to-run-as-root/60413/2 – Neeraj

+0

はこれで動作しません。 –

+0

ドッカーファイルを教えてもらえますか? – Neeraj

関連する問題