У меня возникли проблемы при попытке создать контейнер, который выполняет cronjob. Я вижу, как cron работает с top
в контейнере, но он не записывает в файл журнала, как это пытается сделать приведенный ниже пример. Файл остается пустым.
Я прочитал ответы на тот же вопрос здесь:
Но я не мог заставить ни одно из предложений работать. Например, я использовал докер-файл отсюда: https://github.com/Ekito/docker-cron/
FROM ubuntu:latest
MAINTAINER docker@ekito.fr
# Add crontab file in the cron directory
ADD crontab /etc/cron.d/hello-cron
# Give execution rights on the cron job
RUN chmod 0644 /etc/cron.d/hello-cron
# Create the log file to be able to run tail
RUN touch /var/log/cron.log
#Install Cron
RUN apt-get update
RUN apt-get -y install cron
# Run the command on container startup
CMD cron && tail -f /var/log/cron.log
кронтаб:
* * * * * root echo "Hello world" >> /var/log/cron.log 2>&1
# Don't remove the empty line at the end of this file. It is required to run the cron job
Это не сработало на моей машине (Windows 10). По-видимому, существует проблема, связанная с Windows, о которой также сообщил кто-то еще: https://github.com/Ekito/docker-cron/issues/3
Чтобы проверить, делал ли я что-то не так, я попытался сделать то же самое на виртуальной машине, работающей под управлением Ubuntu (таким образом, на хосте Ubuntu вместо моего хоста Windows), и это сработало, как и ожидалось. Файл журнала расширен, как и ожидалось.
Так, что я могу сделать, чтобы попытаться заставить это работать?
Я попытался записать в смонтированную (связывающую) папку и создать том для записи. Ни один не работал.