как запустить задания crontab в докере с пользователем без полномочий root - PullRequest
0 голосов
/ 14 марта 2019

Я установил crontabs на докер и добавил двух пользователей root ,asticsearch в файл cron.allow построчно в /etc/cron.allow.

Это позволяет мне вставлять cronjobs для двух пользователей root ,asticsearch.

Для пользователя root запускается crond, но для пользователяasticsearch crond не запускается и выдает ошибку: crond: не удается открыть или создать /var/run/crond.pid: разрешениеdenied

Вот мой файл докера:

FROM docker.elastic.co/elasticsearch/elasticsearch:6.6.0
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 755 /etc/cron.allow
RUN cd /etc/ && cat cron.allow && cat cron.deny
RUN chown -R elasticsearch /etc/cron.d
RUN chmod -R 755 /etc/cron.d
RUN chown -R elasticsearch /var/spool/cron
RUN chmod -R 755 /var/spool/cron
RUN chown -R elasticsearch /etc/crontab
RUN chmod -R 755 /etc/crontab
RUN chown -R  elasticsearch /etc/cron.d
RUN chmod -R 755 /etc/cron.d
COPY ./purge.sh  /usr/share/elasticsearch
RUN ls -l /etc/crontab
RUN ls -l /etc/cron.d
RUN   touch /usr/share/elasticsearch/cron.log
ADD ./cron /etc/cron.d/cron_test
RUN chmod 0755 /etc/cron.d/cron_test
RUN cd /etc/cron.d && cat cron_test
RUN chown -R elasticsearch /etc/cron.d/cron_test
RUN  ls -l  /etc/cron.d/cron_test
USER elasticsearch
RUN crontab /etc/cron.d/cron_test
RUN crontab -l
RUN chmod 600 /var/spool/cron/elasticsearch
ENTRYPOINT crond start && pgrep cron  && tail -f && tail -f /usr/share/elasticsearch/cron.log/usr/share/elasticsearch/cron.log
CMD elasticsearch
RUN cd /var/run && ls
EXPOSE 9200 9300

сборка успешна, но во время работы: $ docker run -p 9200: 9200 -p 9300: 9300 -e "discovery.type = single-node "crontabtest crond: не удается открыть или создать /var/run/crond.pid: разрешение запрещено

как разрешить пользователюasticsearch запускать службу crond?

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