ruby-on-rails - heroku 容器内的 Puma 服务器无法连接到端口
问题描述
我有一个 docker 容器:(称为Dockerfile.web
,相关部分)
ARG PORT=3000
ENV PORT=$PORT
EXPOSE $PORT
ENTRYPOINT ["docker-entrypoint.sh"]
CMD ["rails", "server"]
彪马:config/puma.rb
before_fork do
ActiveRecord::Base.connection_pool.disconnect! if defined? ActiveRecord
end
on_worker_boot do
ActiveRecord::Base.establish_connection if defined? ActiveRecord
end
preload_app!
因此,当我heroku container:push web
随后运行时heroku container:release web
,应用程序已部署,但 puma 服务器未启动 b/c 端口无法连接到:
Booting Puma
Rails 5.2.2 application starting in development
Run `rails server -h` for more startup options
Puma starting in cluster mode...
* Version 3.12.0 (ruby 2.6.0-p0), codename: Llamas in Pajamas
* Min threads: 5, max threads: 5
* Environment: development
* Process workers: 1
* Preloading application
* Listening on tcp://localhost:41626
Use Ctrl-C to stop
- Worker 0 (pid: 28) booted, phase: 0
Error R10 (Boot timeout) -> Web process failed to bind to $PORT within 60 seconds of launch
Stopping process with SIGKILL
我正在关注官方指南,但我没有添加这些部分:
rackup DefaultRackup
port ENV['PORT'] || 3000
environment ENV['RACK_ENV'] || 'development'
我的错误可能在哪里?有任何想法吗?
解决方案
推荐阅读
- javascript - 我正在尝试安装实时服务器,但一直出现此错误
- powershell - Powershell:文件夹浏览器/文件浏览器路径
- python - 不同计算机上的不同 Scikit Learn R^2 结果
- reactjs - 调度一个动作创建函数是如何工作的?
- javascript - select2 返回项目的位置,而不是项目的 ID
- list - 空列表上的 foldMap 时 Haskell 模棱两可的类型变量编译器错误
- python - 如何为文本框创建一个类?
- amazon-web-services - AWS S3 拒绝使用映射域的文件访问
- python - 如何更正 matplotlib 图中重叠的刻度标签
- python - 无法将 JSON 文件中的数据用于日期时间