【问题标题】:What should the actioncable URL be set to under docker?docker下的actioncable URL应该设置成什么?
【发布时间】:2017-04-06 12:32:37
【问题描述】:

在 Docker 下使用 Rails 和 Actioncable 时,action cable URL 应该设置为什么?

通常是这样的

config.action_cable.url = "ws://localhost:3000/cable"

但这不起作用。我已经尝试了一些排列,但我得到的只是

Started GET "/cable" for 172.18.0.6 at 2016-11-22 17:49:37 +0000
Started GET "/cable/"[non-WebSocket] for 172.18.0.6 at 2016-11-22 17:49:37 +0000
Failed to upgrade to WebSocket (REQUEST_METHOD: GET, HTTP_CONNECTION: close, HTTP_UPGRADE: )
Finished "/cable/"[non-WebSocket] for 172.18.0.6 at 2016-11-22 17:49:37 +0000

My docker-compose.yml file is here。我尝试过使用单独的电缆图像(已注释掉),但没有任何运气。到目前为止,我还没有做到,应用程序图像和电缆图像似乎存在冲突,并且 puma 的一个或两个实例只是不断重启。解决这个问题将是一个奖励。

【问题讨论】:

  • 你有没有看过this guide,看起来他正在自己的容器中使用 ActionCable 进行设置。

标签: ruby-on-rails docker docker-compose actioncable


【解决方案1】:

如果您在单独的容器中将 actioncable 作为独立服务器运行,那么您必须为开发环境设置允许的请求来源:

config.action_cable.url = "ws://localhost:28080"
config.action_cable.allowed_request_origins = %r{http://localhost.*}

【讨论】:

  • 当 Rails 容器中包含 ActionCable 时,此配置也适用于我
猜你喜欢
  • 2019-08-31
  • 2015-03-08
  • 2019-07-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-01-17
  • 2012-02-17
  • 2017-06-14
相关资源
最近更新 更多