【问题标题】:Bash shell script not executing command docker entrypointBash shell 脚本不执行命令 docker entrypoint
【发布时间】:2025-09-25 21:50:02
【问题描述】:

我有一个 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

【问题讨论】:

    标签: bash docker cron


    【解决方案1】:

    以下应该可以工作:

    #!/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。

    【讨论】:

      最近更新 更多