【问题标题】:Bash shell script not executing command docker entrypointBash shell 脚本不执行命令 docker entrypoint
【发布时间】:2020-06-24 23:17:29
【问题描述】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-01-04
      • 2011-10-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-05-02
      • 2014-01-11
      • 1970-01-01
      相关资源
      最近更新 更多