【发布时间】:2022-11-08 22:23:00
【问题描述】:
我正在尝试使用默认的puma 服务器dockerize rails 7 应用程序,并使用自签名证书启用ssl。本地启动应用程序按预期工作。
作为容器运行时,我在 Firefox 中收到“PR_END_OF_FILE_ERROR”错误。使用其他浏览器进行测试会导致“可以访问此站点”。 localhost 意外关闭了连接。
docker run 命令:docker run --rm -it -p 3000:3000 my-app-image
Dockerfile CMD: CMD [ "rails", "s" ]
故障排除步骤:
-
机器重启
-
更新 Docker
-
将主机端口 443 映射到容器端口 3000
-
$RAILS_ENV开发和生产 -
docker 文件中 rails 命令的变体:
CMD [ "bundle", "exec", "rails", "s", "-b", "0.0.0.0" ]CMD [ "rails", "s", "-b", "127.0.0.1" ]-
CMD [ "rails", "s", "-u", "puma", "-b", "'ssl://127.0.0.1/?key=server.key&cert=server.crt&verify_mode=none'" ]配置/应用程序.rb
... # Enable SSL config.force_ssl = true ...配置/puma.rb
... environment ENV.fetch("RAILS_ENV") { "development" } # SSL Configuration localhost_key = 'server.key' localhost_crt = 'server.crt' ssl_bind 'localhost', 3000, { key: localhost_key, cert: localhost_crt, verify_mode: 'none' } ...由于它在本机运行时有效,我认为问题在于
docker或puma,但我不确定它可能是什么或如何进一步排除故障。
【问题讨论】:
标签: ruby-on-rails ruby docker ssl