gpt4 book ai didi

cron - 为什么Dockerfile中的cron服务不运行?

转载 作者:IT老高 更新时间:2023-10-28 21:21:57 25 4
gpt4 key购买 nike

searching对于这个问题,我发现:cron -f 应该启动服务。

所以我有:
运行 apt-get install -qq -y git cron

接下来我有:
CMD cron -f && crontab -l > pullCron && echo "* * * * * git -C ${HOMEDIR} pull">> pullCron && crontab pullCron && rm pullCron

我的 dockerfile 部署没有错误,但 cron 没有运行。怎么做才能启动 cron 服务加上一行?

PS:
我知道我的 cron 中的 git 函数实际上应该是一个钩子(Hook),但对我(可能对其他人)来说,这是关于学习如何使用 Docker 设置 crons :-)

PPS:
完整的 Dockerfile(已更新):

RUN apt-get update && apt-get upgrade -y
RUN mkdir -p /var/log/supervisor
RUN apt-get install -qq -y nginx git supervisor cron wget
RUN echo "daemon off;" >> /etc/nginx/nginx.conf
RUN wget -O ./supervisord.conf https://raw.githubusercontent.com/..../supervisord.conf
RUN mv ./supervisord.conf /etc/supervisor/conf.d/supervisord.conf
RUN apt-get install software-properties-common -y && apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0x5a16e7281be7a449 && add-apt-repository 'deb http://dl.hhvm.com/ubuntu utopic main' && apt-get update && apt-get install hhvm -y
RUN cd ${HOMEDIR} && git clone ${GITDIR} && mv ./tybalt/* ./ && rm -r ./tybalt && git init
RUN echo "* * * * * 'cd ${HOMEDIR} && /usr/bin/git pull origin master'" >> pullCron && crontab pullCron && rm pullCron
EXPOSE 80
CMD ["/usr/bin/supervisord"]

购买力平价:
Supervisord.conf:

[supervisord]
autostart=true
autorestart=true
nodaemon=true

[program:nginx]
command=/usr/sbin/nginx -c /etc/nginx/nginx.conf

[program:cron]
command = cron -f -L 15
autostart=true
autorestart=true

最佳答案

已经用主管启动了 crond,你的 cron 作业应该被执行了。以下是您可以采取的故障排除步骤,以确保 cron 正在运行

  1. cron 守护进程是否在容器中运行?登录到容器并运行 ps a | grep cron 找出答案。使用 docker exec -ti CONTAINERID/bin/bash 登录容器。

  2. supervisord 正在运行吗?

  3. 例如,在我的设置中,以下主管配置可以正常工作。图片是 ubuntu:14.04。我在 Dockerfile 中有 CMD ["/usr/bin/supervisord"]
[supervisord]
nodaemon=true
[program:crond]
command = /usr/sbin/cron
user = root
autostart = true
  1. 尝试另一个简单的 cron 作业,以确定问题是您的 cron 条目还是 cron 守护程序。使用 crontab -e 登录到容器时添加此内容:

    * * * * * echo "hi there">>/tmp/test

  2. 查看容器日志以获取有关 cron 的更多信息:

    docker 日志 CONTAINERID | grep -i cron

这些只是您可以遵循的一些故障排除提示。

关于cron - 为什么Dockerfile中的cron服务不运行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30417176/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com