将 Rails 应用程序从 Engine Yard 移动到 OpsWorks 时,出现以下错误:
Error executing action `deploy` on resource 'deploy[{{ app path }}]'
you must supply a name when declaring a config resouce
当将 rails 应用程序部署到 ops 时,错误继续显示“
我已确认我的“自定义 json”正在database.yml
正确填充文件。
进一步详细说明:
Resource Declaration:
deploy deploy[:deploy_to] do
provider Chef::Provider::Deploy.const_get(deploy[:chef_provider])
..
有趣的是,在下面的转储中,有一个params
列表,其中包括
:name => nil
这似乎是问题所在。我检查了 OpsWorks 中的所有表单,每个名称字段都已填充。除此之外,自定义 JSON 似乎是正确的,因为它正在填充到 database.yml 文件中。我不确定从那里还要检查什么。
有人之前见过这个问题吗?或者有人能提供一些关于我如何确定这里出了什么问题的想法吗?
答案1
问题是旧的 Engine Yard 部署脚本采用的参数与 opsworks 在其部署脚本中使用的参数不同。解决方案是重写部署脚本,删除 Engine Yard 包装器代码。