Запуск cron в Docker-контейнере на хосте Windows - PullRequest
1 голос
/ 28 мая 2019

У меня возникли проблемы при попытке создать контейнер, который выполняет 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), и это сработало, как и ожидалось. Файл журнала расширен, как и ожидалось.

Так, что я могу сделать, чтобы попытаться заставить это работать?

Я попытался записать в смонтированную (связывающую) папку и создать том для записи. Ни один не работал.

...