【发布时间】:2019-10-28 00:47:45
【问题描述】:
我有一个基于 ubuntu 的 dockerfile 映像。我试图让 bash 脚本每天运行,但 cron 永远不会运行。当容器运行时,我检查 cron 是否正在运行。 bash 脚本运行良好,并且 crontab 命令很好地复制到了容器内。我似乎无法找到问题出在哪里。
这里是 Dockerfile:
FROM snipe/snipe-it:latest
ENV TZ=America/Toronto
RUN apt-get update \
&& apt-get install awscli -y \
&& apt-get clean \
&& apt-get install cron -y \
&& rm -rf /var/lib/apt/lists/*
RUN mkdir /var/www/html/backups_scripts /var/www/html/config/scripts
COPY config/crontab.txt /var/www/html/backups_scripts
RUN /usr/bin/crontab /var/www/html/backups_scripts/crontab.txt
COPY config/scripts/backups.sh /var/www/html/config/scripts
CMD ["cron","-f"]
最后一个命令 CMD 不起作用。一旦我删除了 cmd 命令,当我检查容器内的 cron 任务时就会收到此消息:
root@fcfb6052274a:/var/www/html# /etc/init.d/cron status
* cron is not running
即使我在 crontab 之前启动 cron 进程,crontab 仍然没有启动
此 dockerfile 由 docker swarm 文件(组合文件类型)调用。也许 cron 必须用 compose 文件激活。
我该如何解决这个问题???谢谢
【问题讨论】:
标签: docker dockerfile docker-swarm