在Best practices for running Docker指南中指出,每个docker容器应该只运行一个进程。在Ubuntu中,有一些与apache-httpd相关的cron-job,它们每天运行(位于/etc/cron.daily/apache2中)。
当使用官方存储库中的apache-docker-image (查看here)时,这些cronjob不会运行,只有httpd进程会启动,cron不会运行。
上面提到的cron-job不应该被执行吗?我很难弄清楚如何从另一个docker-image执行这个cron-job,正如"Best-practices-guide“中所建议的那样,因为"cron-docker-image”应该能够访问apache-process才能正确运行cron-job。
发布于 2016-09-01 09:36:49
对于基本的apache,不需要运行cron作业。
如果您有cron作业要运行,就没有“正确答案”。
如果它们每天运行,并且只运行一段时间,那么您当然可以只安排它们运行,而不是使用cron。
如果它们更周期性地运行,或者您没有能够处理它们的调度器(如AWS lambda),那么让您的off服务器将它们作为cron运行并不违反最佳实践,您只需要在apache的容器上构建自己的容器来处理它。
如果你真正的问题是“我该如何运行cron作业”,谷歌很快就会给你带来:
https://github.com/aptible/docker-cron-example
https://hub.docker.com/r/hamiltont/docker-cron/
https://getcarina.com/docs/tutorials/schedule-tasks-cron/
您只需使用&或nohup将其修改为在后台运行
你试过什么?
https://stackoverflow.com/questions/39241075
复制相似问题