【发布时间】:2020-07-24 20:58:29
【问题描述】:
我有一个带有 Sidekiq 的 Ruby on Rails 应用程序。我在 Heroku 上运行它多年,使用 web 服务器的 web dynos 和 Sidekiq (https://devcenter.heroku.com/articles/background-jobs-queueing) 的 worker dynos。
我设法让 Web 服务器在 Azure 上运行,非常简单。
我现在无法让 Sidekiq 在 Azure 上运行。 Azure 上似乎不存在工人的概念(由 Heroku 定义)。
这是我到目前为止所做的:
-
我尝试使用以下启动命令为容器配置 Web 应用:
bundle exec sidekiq -C config/sidekiq.yml- sidekiq 启动,但由于容器无法处理来自 Azure 的 HTTP ping(健康检查)(因为 sidekiq 不是 Web 服务器),容器会自动关闭 (
Container didn't respond to HTTP pings on port: XXXX) - 没有禁用 HTTP ping 的选项 => https://docs.microsoft.com/fr-fr/archive/blogs/waws/things-you-should-know-web-apps-and-linux#your-container-must-respond-to-an-http-pingapplies-to-web-app-for-containers
- sidekiq 启动,但由于容器无法处理来自 Azure 的 HTTP ping(健康检查)(因为 sidekiq 不是 Web 服务器),容器会自动关闭 (
-
我尝试使用 docker-compose 配置 Web 应用:
services: web: image: "myregistry.azurecr.io/myimage:latest" ports: - 80:80 sidekiq: image: "myregistry.azurecr.io/myimage:latest" command: bundle exec sidekiq -C config/sidekiq.yml -
使用 docker compose,两个服务(web + sidekiq)都可以正常启动,但几分钟后,我出现以下错误:
ERROR - multi-container unit was not started successfullywithout more details. -
我终于尝试配置一个容器实例:https://azure.microsoft.com/fr-fr/services/container-instances/
- 我不知道一旦容器启动后如何执行 sidekiq
有没有人设法让 sidekiq 在 Azure 上运行? 谢谢!
【问题讨论】:
标签: ruby-on-rails azure docker sidekiq