Tag: cron

在Docker集群中安排任务的最佳方法是什么?

目前,我有一个应用程序运行在一台服务器上。 有一个crontab按照特定的规则build立起来,在某些时候有一些任务正在运行。 现在,我正在考虑将我的应用程序迁移到Docker容器中,以便能够独立运行我的应用程序的多个实例。 我想知道如何做的事情是如何安排跨多个docker集装箱的任务 。 比方说,我有一个PHP命令,每小时通过API从第三方应用程序获取新的数据。 目前,我会使用一个cron来安排它像这样: 0 */1 * * * php /some/path/index.php mycommand 。 可以有不同的频率启动多个类似的命令。 我不能简单地将crontab打包到我的Docker镜像中,因为当有5个容器运行时,命令将被启动5次。 我想在运行容器数量上独立启动一次。 什么是实现这一目标的理想解决scheme?

在Docker中处理cron作业?

人们如何通常使用docker处理cron作业? 我见过的最常见的情况是会有一个只能运行crond和代码库的搭档图像,但是当使用cronie时,我无法读取在docker命令行中传入的任何环境variables。 具体我会做这个: docker run -d –name cron -e VAR1=val1 -e VAR2=val2 cron_image start 在图像里面我们会有这个: [root@dae7207bf10e /]# yum info cronie Loaded plugins: fastestmirror Loading mirror speeds from cached hostfile * base: mirror.ash.fastserv.com * epel: mirror.cs.pitt.edu * extras: mirror.vcu.edu * updates: mirror.us.leaseweb.net Installed Packages Name : cronie Arch : x86_64 Version : 1.4.11 Release : 13.el7 […]

在CoreOS的docker ubuntu cron不能运行,有趣的行为

我有一个docker,这是基于Ubuntu的形象。 https://github.com/kkpoon/docker-cron-example/tree/1733eef9b76d51fda038510f49eebd58d4528c54 它运行cron并在Ubuntu中托pipe的docker中运行良好。 当我将其部署到CoreOS主机时,它有一些有趣的行为。 docker run –rm –name example1 docker-cron-example ,checked cron正在运行,因为它出现在docker exec example1 ps aux 假设示例cron每分钟回显到/var/log/cron.log ,但是,每分钟都没有发生 经过一番尝试,当我运行docker exec example1 crontab /crontab重新安装crontab,或者进入docker exec -it example1 /bin/bash并执行crontab -e ,内容没有改变,并且:w保存。 cronjob可以运行! cron有什么问题?

cron在docker上的容器为laravel不工作

我有一个容器与我的laravel应用程序与PHP:7.0.4-Fpm作为基础的形象。 这是我的dockerfile: FROM php:7.0.4-fpm RUN apt-get update && apt-get install -y cron nano libmcrypt-dev \ mysql-client libmagickwand-dev –no-install-recommends \ && pecl install imagick \ && docker-php-ext-enable imagick \ && docker-php-ext-install mcrypt pdo_mysql COPY . /var/www ADD crontab /etc/cron.d/laravel-cron RUN chmod 0644 /etc/cron.d/laravel-cron RUN touch /var/log/cron.log RUN /usr/bin/crontab /etc/cron.d/laravel-cron RUN cron Cron没有运行,我必须在容器中ssh启动它。 当我手动启动它时,它适用于像每分钟回显文本这样简单的事情。 但不是为PHP的工匠时间表:运行命令。 在日志中我看到: 运行预定命令:'/ […]

为什么crond无法在alpine linux上运行非root crontab?

我正在Alpine Linux上运行一个非root用户的crontab文件。 我已经通过了另外两个cron相关的post,我没有答案: https://askubuntu.com/questions/23009/why-crontab-scripts-are-not-working https://serverfault.com/questions/449651/why-is-my-crontab-not-working-and-how-can-i-troubleshoot-it 这是设置。 我的crontab看起来像这样: PATH=/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/opt/aws/bin:/home/ec2-user/bin SHELL=/bin/bash * * * * * /opt/monitor/monitor.sh >> /var/log/monitor.log 2>&1 0 3 * * * /opt/monitor/monitor-log-clean.sh >> /var/log/monitor.log 2>&1 我的Dockerfile现在有点乱,但只是因为我一直在拼命解决这个问题。 看起来像这样 简而言之,我添加了crontab -e的SUID作为其他用户的工作,我创build我的用户,我导入我的crontab文件,然后我提供权限,我可以想到的一切。 FROM alpine:3.5 # DEPENDENCY TO ALLOW USERS TO RUN crontab -e RUN apk add –update busybox-suid # I LIKE BASH RUN apk –no-cache add […]

为什么“service cron start”不在Docker文件中工作?

当我在正在运行的Docker容器中启动cron服务时 service cron start 有用。 但是行 RUN service cron start 在Dockerfile中似乎没有效果。 为什么? 备择scheme 我想简单地改变我的CMD到CMD ["startup.sh"] ,它首先运行service cron start ,然后run.py (Pythonnetworking服务器)。 但是我希望Web服务器不能以root身份运行,因此service cron start会失败。

在Azure中计划Dockerized导入作业

我有一个cron在Microsoft Azure的Docker容器(swarm)内每小时运行一次。 容器当前正在运行,(unix)cron不断触发导入脚本。 如果有一个调度工作的优雅方式,我会感兴趣。 例如使用https://docs.microsoft.com/en-us/azure/scheduler/ 说调度器旋转容器(启动导入脚本),并在完成时结束。 它会处理执行间隔,失败的工作等。 有什么想法吗? 干杯,Tibor

在Docker容器中执行cron服务时出现的问题?

我有一些cronjobs,我总是使用和工作正常。 但现在,试图将所有东西都移到Docker容器中,我Docker了这些错误: /usr/bin/service: 127: /usr/bin/service: stop: not found /usr/bin/service: 128: exec: start: not found 它们在执行诸如"service restart nginx"这些cronjob之类的东西时发生。 请注意,相同的命令可以在cronjob之外正常工作。 PATH在/etc/crontab正确设置。 将它添加到/etc/cron.d中的个别cronfiles也不起作用。 我也尝试在/etc/crontab中将SHELL=/bin/sh更改为SHELL=/bin/bash (即使它不安全,但是想尝试),但是没有工作。 有任何想法吗?

Google Container Engine中的作业调度(Kubernetes)

我试图创build一个Kubernetes预定的工作,但是,我注意到: 在Kubernetes版本> = v1.4上,它被称为ScheduledJob ( http://janetkuo.github.io/docs/user-guide/scheduled-jobs/ ) 在Kubernetes版本> = v1.5中,它被称为* CronJob( http://kubernetes.io/docs/user-guide/cron-jobs/ ) Google Container Engine上运行的默认Kubernetes版本是v1.4.6,这意味着我应该使用ScheduledJob对象。 问题是ScheduledJob使用的批处理/ v2alpha1 API版本在我的群集上未启用,所以作业创build失败,另一方面,创build一个启用了Alphafunction的新群集只会持续30天(Google会自动删除它之后)。 是否有任何生产就绪的解决scheme可以在Google Container Engine上安排作业? 谢谢, 伊詹 编辑: 以下是Google支持部门的官方回应: 正如您已经注意到的,计划的作业/ cron作业function目前处于alpha模式。 我们意识到这是一个非常需要的function,并正在努力使其在未来的生产就绪。 在此之前,不幸的是,我不能推荐用于生产的支持function。

由于缺less编译器错误导致的Python和高山故障

我正在寻找与python3和crontab的docker图像。 当我使用python:latest作为基础时,我没有cron,但是所有需要的python包安装都没有问题。 当我使用阿尔卑斯山作为基地,我有(busybox)cron工作,但由于编译器错误无法安装特定的python包。 当我使用python:alpine时也是如此 收集pynacl> = 1.0.1(从paramiko – > – r required_python_packages.txt(第6行))下载PyNaCl-1.1.2.tar.gz(3.1MB)完整的输出从命令python setup.py egg_info: No working compiler found, or bogus compiler options passed to the compiler from Python's distutils module. See the error messages above. 有什么build议吗?