在Best practices for running Docker指南中说明,每个docker容器应该只运行一个进程。在Ubuntu中,有一些与apache-httpd相关的cron-jobs每天运行(位于/etc/cron.daily/apache2
)。
当使用官方存储库中的apache-docker-image(看here)时,这些cronjobs没有运行,只启动了httpd进程,cron没有运行。
不应该执行上述的cron-jobs吗? 我很难弄明白,如何从另一个docker-image执行这个cron-jobs,如" Best-practices-guide"因为" cron-docker-image"应该有权访问apache-process以正确运行cron-jobs。
答案 0 :(得分:0)
对于基本的apache,没有可以运行的cron作业。
如果您要运行cron作业,则没有“正确答案”。
如果它们每天运行并且只运行一段时间,那么你当然可以安排那些运行而不是使用cron。
如果他们定期运行或者你没有可以处理它的调度程序(比如AWS lambda)那么让你的网络服务器作为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
你有什么尝试?