我和我的开发团队一直在使Ruby on Rails应用程序进行dockerize方面最困难。所有的教程和答案似乎都存在很久,因此已经过时了。
经过几天的研究并尝试了多种技术,我们终于找到了答案。所以,这篇文章是要问最近的问题并提供我们得到的答案。
在运行Ruby 2.7.0和Rails 6.0.3.4的新Ruby on Rails应用程序中,我们将能够运行Rails服务器并在localhost:3000
处获得标准的Ruby屏幕。但是,在对应用程序进行docker化并转到localhost:8000
(据称这是docker映像的默认端口)之后,我们将收到一条错误消息,指出localhost没有发送任何数据。
这是问题,什么原因导致这种情况发生?我们尝试了localhost
和127.0.0.1
,甚至尝试了通过在终端中运行hostname
而获得的本地计算机的名称。这些都无法在端口3000
或端口8000
上监听。
答案 0 :(得分:0)
我们针对此问题提出的答案是,即使Docker正在查看端口3000
,应用程序仍在说信息请求应来自端口8000
。因此,我们进入config/puma.rb
并更改了如下代码:
-port ENV.fetch("PORT") { 3000 }
+port ENV.fetch("PORT") { 8000 }
基本上,如果遇到相同的问题,请在puma.rb
文件中查找指定端口3000
的行,并将其更改为端口8000
。一旦发生这种情况,我们就可以开展业务。
注意:上面代码中的-和+符号来自git存储库,显示第一行已删除,第二行已添加。这些符号不应在实际代码中。
祝你好运,编码愉快!