у меня есть докерфайл
FROM python:3.9.12-bullseye
COPY . .
RUN apt-get update -y
RUN apt-get install cron -y
RUN crontab crontab
CMD python task.py && crond -f
И кронтаб
* * * * * python /task.py
Я продолжаю сталкиваться с error /bin/sh: 1: crond: not found, когда запускаю файл докера. Сборка докера в порядке.
Кто-нибудь знает, почему это происходит? Если я использую python:3.6.12-alpine, все работает нормально, но с python:3.9.12-bullseye я продолжаю получать эту ошибку.






Если вы посмотрите на debian series cron.service, вы увидите следующее:
[Unit]
Description=Regular background program processing daemon
Documentation=man:cron(8)
After=remote-fs.target nss-user-lookup.target
[Service]
EnvironmentFile=-/etc/default/cron
ExecStart=/usr/sbin/cron -f $EXTRA_OPTS
IgnoreSIGPIPE=false
KillMode=process
Restart=on-failure
[Install]
WantedBy=multi-user.target
Из ExecStart=/usr/sbin/cron -f $EXTRA_OPTS, я думаю, в отличие от alpine, основная программа в Linux такой серии debian может быть cron, а не crond.
(PS: python:3.9.12-bullseye основано на Debian, а python:3.6.12-alpine основано на Alpine)
В Ubuntu и Debian это
cron, в Alpine и CentOS —crond. Какая досада! discourse.chef.io/t/coding-style-abstracting-cron-vs-crond/3115