Запустите сервис cron при сборке Docker - PullRequest
0 голосов
/ 15 мая 2019

У меня в файле докера:

RUN apt-get -y install cron
RUN cron
COPY symfony.cron /var/spool/cron/crontabs/www-data
RUN chown www-data:crontab /var/spool/cron/crontabs/www-data

CMD ["start.sh"]

И в моем start.sh:

echo "+ start cron service"
service cron start

Все хорошо, проблема в том, что кроны не работают, и страннопотому что когда я иду к контейнеру докера и я получаю service cron status, я получаю [ ok ] cron is running. , так что все хорошо.И когда я пытаюсь выполнить одну команду, выполняется хорошо.И когда я делаю crontab -u www-data -l, я получаю список со всеми кронами.Так что все хорошо на этом этапе.Но кроны больше не выполняются, поэтому я не понимаю проблемы, может быть, некоторые разрешения или я не знаю.Пожалуйста, помогите мне !!!Спасибо заранее и извините за мой английский.

Любые идеи, пожалуйста

1 Ответ

1 голос
/ 15 мая 2019

Вы должны широко принять такие команды, как service start, которые не работают в Docker. Просто запустите программу, которую вы пытаетесь запустить напрямую. Убедитесь, что он запускается как основной процесс.

CMD ["crond", "-f"]

(Если ваш сценарий основного контейнера запускает команду service start, и эта команда завершается, а сценарий основного контейнера завершается, то контейнер завершает работу, а это не то, что вам нужно. Если service поддерживается системой systemd или другая система инициализации, ваш контейнер не будет работать.)

...