我正在嘗試使用使用自簽名證書啟用的默認服務器來docker調整rails 7應用程式。本地啟動應用程式按預期作業。pumassl
作為容器運行時,我在 Firefox 中收到“PR_END_OF_FILE_ERROR”錯誤。使用其他瀏覽器進行測驗會導致“可以訪問此站點”。localhost 意外關閉了連接。
docker run命令:docker run --rm -it -p 3000:3000 my-app-image
Dockerfile命令: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'
}
...
由于它在本機運行時有效,我認為問題在于dockeror puma,但我不確定它可能是什么或如何進一步排除故障。
uj5u.com熱心網友回復:
問題是將puma.rb組態檔中的 ssl 埠系結到 localhost,這在運行的容器之外不可用。
改變:
ssl_bind 'localhost', 3000, {
至:
ssl_bind '0.0.0.0', 3000, {
解決了這個問題。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/529648.html
上一篇:AMQ9631E:SSL握手期間協商的CipherSpec與通道所需的CipherSpec不匹配
下一篇:散點圖和其中的集群
