ruby-on-rails - 在 docker 下应该将 actioncable URL 设置为什么?

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

在 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 的一个或两个实例只是不断地重新启动。解决这个问题将是一个奖励。

最佳答案

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

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

关于ruby-on-rails - 在 docker 下应该将 actioncable URL 设置为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40748539/

相关文章:

ruby-on-rails - Capistrano 从 Git HTTP 仓库部署

maven - spotify dockerfile-maven Dockerfile

tomcat - docker compose 不启动容器内的服务

docker - 通过使用 docker-compose 结果进入重写或内部重定向循环,使用 NGINX 作为运行 Directus 的反向代理

python - Boto3 - 如何通过代理连接到 S3?

ruby-on-rails - 奇怪的 ActiveRecord 问题——比如生成无效的 SQL

ruby-on-rails - 查找一个属性大于另一个属性的记录

ruby-on-rails - 格式化 JSON API 的 Active Record 时间戳

docker - 如何使用terraform destroy强制删除Docker镜像

linux - sonarqube 的 Docker 内存泄漏