Как запуститьasticsearch от имени root внутри докера? - PullRequest
1 голос
/ 15 марта 2019

Вот мой файл Docker:

 FROM docker.elastic.co/elasticsearch/elasticsearch:6.6.0
    RUN cat /etc/group
    RUN chown -R root:root /usr/share/elasticsearch
    RUN chmod -R 777 /usr/share/elasticsearch
    RUN ls -ltr /usr/share/elasticsearch
    RUN chmod -R 777 /usr/share/elasticsearch
    ENV PATH=$PATH:/usr/share/elasticsearch/bin
    RUN yum -y update
    RUN yum -y install crontabs
    RUN echo  "root" > /etc/cron.allow
    RUN echo  "elasticsearch" >> /etc/cron.allow
    RUN echo "" >> /etc/cron.allow
    RUN chmod -R 777 /etc/cron.allow
    RUN chown -R elasticsearch /etc/cron.d
    RUN chmod -R 777 /etc/cron.d
    RUN chown -R elasticsearch /var/spool/cron
    RUN chmod -R 777 /var/spool/cron
    RUN chown -R elasticsearch /etc/crontab
    RUN chmod -R 777 /etc/crontab
    RUN chown -R  elasticsearch /etc/cron.d
    RUN chmod -R 777 /etc/cron.d
    RUN chown -R  elasticsearch /var/run
    RUN chmod -R 777 /var/run
    COPY ./purge.sh  /usr/share/elasticsearch
    RUN   touch /usr/share/elasticsearch/cron.log
    ADD ./cron /etc/cron.d/cron_test
    RUN chmod 0777 /etc/cron.d/cron_test
    RUN chown -R elasticsearch /etc/cron.d/cron_test
    USER elasticsearch
    RUN crontab /etc/cron.d/cron_test
    RUN chmod 777 /var/spool/cron/elasticsearch
    CMD elasticsearch
    USER root
    EXPOSE 9200 9300

Я хочу запуститьasticsearch от имени пользователя root, потому что crontabjobs также работает от имени пользователя root.Когда я собираю файл Docker и запускаю его с помощью приведенной ниже команды, я получаю эту проблему:

212744798@GH71T8S2E MINGW64 ~/Documents/docke
$ docker run -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" es

OpenJDK 64-Bit Server VM warning: Option UseConcMarkSweepGC was deprecated in version 9.0 and will likely be removed in a future release.
[2019-03-15T12:22:34,596][WARN ][o.e.b.ElasticsearchUncaughtExceptionHandler] [unknown] 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:163) ~[elasticsearch-6.6.0.jar:6.6.0]
        at org.elasticsearch.bootstrap.Elasticsearch.execute(Elasticsearch.java:150) ~[elasticsearch-6.6.0.jar:6.6.0]
        at org.elasticsearch.cli.EnvironmentAwareCommand.execute(EnvironmentAwareCommand.java:86) ~[elasticsearch-6.6.0.jar:6.6.0]
        at org.elasticsearch.cli.Command.mainWithoutErrorHandling(Command.java:124) ~[elasticsearch-cli-6.6.0.jar:6.6.0]
        at org.elasticsearch.cli.Command.main(Command.java:90) ~[elasticsearch-cli-6.6.0.jar:6.6.0]
        at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:116) ~[elasticsearch-6.6.0.jar:6.6.0]
        at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:93) ~[elasticsearch-6.6.0.jar:6.6.0]
Caused by: java.lang.RuntimeException: can not run elasticsearch as root
        at org.elasticsearch.bootstrap.Bootstrap.initializeNatives(Bootstrap.java:103) ~[elasticsearch-6.6.0.jar:6.6.0]
        at org.elasticsearch.bootstrap.Bootstrap.setup(Bootstrap.java:170) ~[elasticsearch-6.6.0.jar:6.6.0]
        at org.elasticsearch.bootstrap.Bootstrap.init(Bootstrap.java:333) ~[elasticsearch-6.6.0.jar:6.6.0]
        at org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:159) ~[elasticsearch-6.6.0.jar:6.6.0]
        ... 6 more

Как я могу запуститьasticsearch с пользователем root?Нужно ли менять какие-либо разрешения?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...