【问题标题】:Docker with a Rails App-Workers not running带有 Rails App-Workers 的 Docker 未运行
【发布时间】:2014-01-28 21:52:53
【问题描述】:

所以我有一个具有多种类型工作人员的 Rails 应用程序。我决定尝试使用 Docker 运行 rails 应用程序,为每种类型的工作程序(Resque、DelayedJob、调度程序、不同的配置)使用单独的映像。问题是有队列的工作人员(DelayedJob + Resque)没有接工作(使用两者来排除排队系统本身)。我可以看到排队的工作,他们在那里,但工人从来没有从队列中取出任何东西。如果我从控制台运行一个工作人员,它工作得很好。

图片基于 Cedarish-https://github.com/progrium/cedarish

坐在 NGINX 后面的网络工作者似乎做得很好,尽管我注意到他们的一些问题有时会在一段时间后变得无响应,但不确定这是否相关。

您知道什么可能导致在 Docker 下运行并成功连接到 Redis + MySQL 的工作人员忽略作业队列而不拾取任何东西吗?

猜测这与我的 Docker 配置有关...

【问题讨论】:

  • 工作进程真的在运行吗?
  • 是的,他们肯定在运行。两个日志都没有显示错误,并且 Resque-Web 承认它们存在。
  • 你能分享一下让 Resque 与 Docker 一起工作的知识吗?
  • @pak Resque 无法正常工作,您遇到了什么问题?没有什么特别的,因为 Resque 工作人员只是读取 Redis 队列。
  • @ScottFeinberg 我解决了我的问题:我没有正确使用 phusion 乘客的基础图像服务。

标签: ruby-on-rails ruby docker


【解决方案1】:

原来这是一个操作系统问题——Docker 的 CPU 使用率高达 100%,而且通常表现不佳。

这是在带有 Debian 7 的 GCE 实例上,带有反向移植。

以下解决了问题:

sudo aptitude install bridge-utils libvirt-bin debootstrap

vi /etc/default/grub

GRUB_CMDLINE_LINUX="cgroup_enable=memory swapaccount=1"

sudo reboot

【讨论】:

    猜你喜欢
    • 2022-01-10
    • 1970-01-01
    • 2018-11-19
    • 2018-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多