我有一个shell脚本,从docker CMD运行时,它不执行“ crontab”命令。但是当我在docker容器中执行文件时可以使用。我想念什么?
文件entry.sh:
#!/bin/sh
echo "Starting cron"
/usr/sbin/cron -f -L 15
crontab /etc/cron.d/cron-python
Docker文件:
FROM python:3
RUN apt-get update && apt-get -y install cron
COPY ./cron/entry.sh /entry.sh
COPY ./cron/crontab.txt /etc/cron.d/cron-python
RUN chmod +x /entry.sh
RUN chmod 0644 /etc/cron.d/cron-python
CMD ["./entry.sh"]
cron-python:
# crontab -e
*/1 * * * * python /app/myscript.py >> /var/log/script.log 2>&1
答案 0 :(得分:0)
以下应该有效:
#!/bin/sh
# start cron
echo "Starting cron"
crontab /etc/cron.d/cron-python
/usr/sbin/cron -f -L 15
在您的版本中,/etc/cron.d/cron-python
未安装,因为您要求/ usr / sbin / cron在前台运行。
还需要复制/app/myscript.py。