如何使用Scheduler(Cron)容器在其他容器中执行命令

时间:2019-06-13 18:53:00

标签: docker cron containers scheduler job-scheduling

我花了很多时间进行研究,但找不到适合我的问题的解决方案。我的应用程序在dockerized环境中工作:

  1. 数据库的一个容器;
  2. APP本身的一个或多个容器。每个容器都包含APP的特定版本

这是一个多租户应用程序,因此每个客户端(或租户)一次只能与一个版本相关(迁移应由每个客户端处理,但这不相关)。

>

问题是我希望有另一个容器来处理调度作业,例如发送电子邮件,处理一些数据等。调度程序随后将在应用程序的容器中执行命令。像Ofelia这样的项目提供了很好的希望,但我必须知道容器才能提前执行命令。这是不可能的,因为我需要转到数据库容器来发现客户端所在的版本,以弄清楚该命令应在哪个容器中执行。

这里有什么工具可以帮助我吗?我应该以某种方式更改结构吗?任何提示都将受到欢迎。

谢谢。

1 个答案:

答案 0 :(得分:0)

所以您的问题是要在调度作业之前在数据库容器中获取APP的版本信息,对吗? 我认为这与业务有关,而不是与dockerized环境有关,您可能有解决此问题的方法:

  1. 检查网络,确保容器的网络可以相互连接
  2. 我认为数据库应该支持RPC功能,您可以使用它来获取版本数据
  3. 您可以使用一些受RPC支持的工具,例如SSH