我想在Docker容器中每分钟为www.example.com执行一次cron作业feeds.sh,每5分钟为reminder.sh执行一次cron作业。它可以每分钟为feeds.sh运行一次。但是对于reminder.sh,它不能每5分钟运行一次,因为它一直在Docker容器中抛出错误/bin/ash: */5: not found
。
下面的代码如下所示:
FROM alpine:latest
# Install curlt
RUN apk add --no-cache curl
# Copy Scripts to Docker Image
COPY reminders.sh /usr/local/bin/reminders.sh
COPY feeds.sh /usr/local/bin/feeds.sh
# Add the cron job
RUN echo ' * * * * * /usr/local/bin/feeds.sh && */5 * * * * /usr/local/bin/reminders.sh' > /etc/crontabs/root
# Run crond -f for Foreground
CMD ["/usr/sbin/crond", "-f"]
3条答案
按热度按时间cwdobuhd1#
将其添加到单独的行中。
当您将&&与cron一起使用时,它期望为相同的cron频率添加多个cron作业。
例如
0 * * * * a && b
因此,为什么它说“*/5未找到”,因为这是上面的
b
-它认为这是一个要运行的cron脚本。将您的 */5 * * * * 脚本添加到其自己命令的单独一行中。
6ss1mwsb2#
更新Docker文件,以每分钟和每5分钟运行一次
ryevplcw3#
docker-compose.yml
:Dockerfile
:crontab
:一个二个一个一个
更多信息在我的other answer。