【问题标题】:How to use a scheduler(cron) container to execute commands in other containers如何使用调度程序(cron)容器在其他容器中执行命令
【发布时间】:2019-10-28 10:15:46
【问题描述】:

我花了相当多的时间进行研究,但我还没有找到令我满意的解决方案。我的应用在 dockerized 环境中运行:

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

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

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

这里有帮助我的工具吗?我应该以某种方式改变结构吗?欢迎任何提示。

谢谢。

【问题讨论】:

    标签: docker cron containers scheduler job-scheduling


    【解决方案1】:

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

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

    【讨论】:

    • 嘿charlie,其实我有办法获取容器ID,它们也会在数据库中注册。我正在努力解决的是如何在另一个容器中运行该命令。有人告诉我应该避免共享 docker 主机套接字,所以它采用了docker exec -it CONTAINER_ID COMMAD 的可能性。
    猜你喜欢
    • 2019-11-06
    • 2021-06-23
    • 1970-01-01
    • 2018-06-12
    • 2021-06-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多