Home > database >  /bin/sh: 1: crond: not found when cron already installed
/bin/sh: 1: crond: not found when cron already installed

Time:10-16

I have a dockerfile

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 

And a crontab

* * * * * python /task.py 

I keep running into the error /bin/sh: 1: crond: not found when I run the docker file. Docker build is fine.

Anyone knows why this happens? If I use python:3.6.12-alpine everything works fine but with python:3.9.12-bullseye, i keep getting that error.

CodePudding user response:

If you have a look for debian series cron.service, you could see next:

[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

From ExecStart=/usr/sbin/cron -f $EXTRA_OPTS, I guess unlike alpine, the main program on such debian series linux could be cron not crond.

(PS: python:3.9.12-bullseye based on debian, while python:3.6.12-alpine based on alpine)

  • Related