Как правильно создать изображение докеры cron?

Я пытаюсь создать образ на основе Debian для закрепления процесса cron, но мои задания cron никогда не запускаются. Вот мой Dockerfile :

 FROM debian:jessie RUN apt-get update && apt-get install -y --no-install-recommends cron COPY jobs.txt /etc/crontab RUN touch /log.txt CMD ["cron", "-f"] 

… и файл jobs.txt :

 * * * * * root echo "job done" >> /log.txt 

Я понял, что что-то не так с командой COPY , потому что когда я заменяю

 COPY jobs.txt /etc/crontab 

с

 RUN echo '* * * * * root echo "job done" >> /log.txt' > /etc/crontab 

он работает отлично.

Так что проблема с файлом jobs.txt и Docker не может скопировать его правильно? Должен ли я исправить только этот файл или использовать совершенно другой подход?

One Solution collect form web for “Как правильно создать изображение докеры cron?”

Единственное различие между использованием COPY и RUN – это разрешения на файл /etc/crontab : с COPY это 664 и с RUN 644.

Я не могу найти что-либо в разрешениях, которые должен иметь /etc/crontab , но если вы добавите

 RUN chmod 644 /etc/crontab 

после строки COPY в вашем Dockerfile Docker запустите cronjobs (по крайней мере, для меня). Поэтому я считаю, что разрешения должны быть 644

  • Получить в реальном времени stdout из контейнера докера на удаленно выполненной команде
  • Установите Cython с python3 в Docker
  • CentOS7 на VMware: как добраться до Docker-сервиса от хоста
  • Можете ли вы сделать неотвратимый chroot с пространствами имен mount?
  • Контейнер-докер не может вытащить репозиторий github, сбой разрешения имени
  • Если я устанавливаю java bin PATH Dockerfile Jar Command, но tomcat не делает
  • Что такое echo ' \ nlocalhost \ n'> / etc?
  • Yum: старый удаленный пакет, конфликтующий с новым пакетом для установки
  • Ошибка Apt-get: запись большего количества данных, чем ожидалось (7643558> 7643216)
  • Перемещение в объеме докера: svirt_sandbox_file_t и texrel_shlib_t
  • «Удалить при записи» с devicemapper и Docker
  • Linux и Unix - лучшая ОС в мире.