我尝试在数字海洋上使用 1 Click Ruby on Rails 选项部署 Rails API 应用程序,但每次尝试部署该应用程序时都会出现运行状况检查错误。
构建阶段成功:
但是当到达部署阶段时它失败了,并且日志中没有有关此错误的详细信息。
我尝试检查错误日志,但服务器似乎正在运行。
到目前为止我尝试过的:
使用 Rails 构建包在 Droplet 中创建新应用程序:
::: 当前构建包:::: 自定义构建命令 v0.1.2 Procfilev 0.0.4 红宝石:v1.244.3 ::::::::::::::::::::::::::::::::::
在数字海洋控制台上为应用程序设置正确的环境变量。
RAILS_MASTER_KEY=..correct key ommited deliberately..
RACK_ENV=development
RAILS_ENV=development
RAILS_LOG_TO_STDOUT=enabled
RAILS_SERVE_STATIC_FILES=enabled
SECRET_KEY_BASE=key correct ommited deliberately..
此外,我目前的基本计划应该允许我部署 Rails 应用程序,并且我还尝试设置应用程序级别环境变量,但它们被我在创建新应用程序时最初设置的环境覆盖。
我的设置:
Ruby 和 Rails 版本:
ruby 3.2.2(2023-03-30 修订版 e51014f9c0)[x86_64-darwin20] 导轨 7.1.3
gemfile 中的平台配置:
gem 'tzinfo-data',平台:%i[mingw mswin x64_mingw jruby] 组:开发,:测试 gem '调试',平台:%i[mri mingw x64_mingw] 结束(已编辑)
应用平台错误代码参考规定此问题是由*引起的
容器未响应健康检查。如果健康检查是 失败,这意味着外部流量未到达我的服务 在预期的 HTTP 路由
*。如果这是解决方案,如何确保外部流量到达我的服务来解决此问题?
最终通过删除
RAILS_SERVE_STATIC_FILES=enabled
和 SECRET_KEY_BASE
更新我的环境变量解决了该问题,然后将 RACK_ENV
和 RAILS_ENV
从开发更改为生产。
应用程序部署成功,但出现了非常奇怪的绿屏。但至少健康检查问题得到了解决。
之前
RAILS_MASTER_KEY=..correct key ommited deliberately..
RACK_ENV=development
RAILS_ENV=development
RAILS_LOG_TO_STDOUT=enabled
RAILS_SERVE_STATIC_FILES=enabled
SECRET_KEY_BASE=key correct ommited deliberately..
已更新
RAILS_MASTER_KEY=..correct key ommited deliberately..
RACK_ENV=production
RAILS_ENV=production
RAILS_LOG_TO_STDOUT=enabled