bash - Bash shell 脚本不执行命令 docker entrypoint
问题描述
我有一个 shell 脚本,当它从 docker CMD 运行时,它没有执行“crontab”命令。但是当我在 docker 容器内执行文件时有效。我错过了什么?
文件 entry.sh:
#!/bin/sh
echo "Starting cron"
/usr/sbin/cron -f -L 15
crontab /etc/cron.d/cron-python
码头工人文件:
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
解决方案
以下应该工作:
#!/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。
推荐阅读
- java - java Communications link failure 最后一个数据包成功发送到服务器
- python - 如何将 2 个参数从模板传递到 django 中的视图?
- reactjs - 有没有人遇到过这个错误:Uncaught TypeError: Cannot read property 'createPaymentMethod' of undefined
- linux - Setcap 不适用于自定义发行版上的原始套接字
- pandas-groupby - 表有几列具有相同类型的信息
- excel - 表刷新vba excel从另一个程序调用程序错误代码1004
- chatbot - 来自目标中机器人的初始化消息
- javascript - JS if 函数内的语句
- python - scipy 最小化 TypeError: 不支持的操作数类型 -: 'tuple' 和 'tuple'
- python - 如果包含联合,list_filters 不适用于管理员 list_view 中重新定义的 get_queryset