我想将我的opsworks rails图层固定到ruby版本2.1.2 显然,这些层已升级到2.1.5,现在我无法再部署我的应用程序。
我尝试通过向我的堆栈添加自定义json来解决这个问题,如下所示:
"opsworks": {
"ruby": {
"full_version": "2.1.2"
}
}
我也试过这个:
"ruby": {
"full_version": "2.1.2",
"major_version": "2.1",
"minor_version": "1"
}
部署失败的错误消息:
[2014-12-18T22:36:58+00:00] INFO: Running queued delayed notifications before re-raising exception
[2014-12-18T22:36:58+00:00] ERROR: Running exception handlers
[2014-12-18T22:36:58+00:00] ERROR: Exception handlers complete
[2014-12-18T22:36:59+00:00] FATAL: Stacktrace dumped to /var/lib/aws/opsworks/cache.stage2/chef-stacktrace.out
[2014-12-18T22:36:59+00:00] ERROR: deploy[/srv/www/carlingo] (deploy::rails line 65) had an error: Mixlib::ShellOut::ShellCommandFailed: Expected process to exit with [0], but received '18'
---- Begin output of sudo su - deploy -c 'cd /srv/www/carlingo/releases/20141218223651 && /usr/local/bin/bundle install --path /home/deploy/.bundler/carlingo --without=test development' 2>&1 ----
STDOUT: Your Ruby version is 2.1.5, but your Gemfile specified 2.1.2
STDERR:
答案 0 :(得分:1)
啊哈,我从一些老doco那里得到了一些技巧。
通过阅读aws/opsworks code我将我的自定义json更正为:
"ruby": {
"version": "2.1.2"
}
它有效!
实际上,这只是部分正确答案。
我有一个响应这个并正确降级的堆栈和另一个不会降级我的ruby版本的堆栈,它报告了这个" update_dependencies"并且在部署时继续失败。
Userspace Ruby version is up-to-date (2.1)
登录时只有我的版本是2.1.5。
许多人重新部署和更新依赖关系,最后他们都会更新。
答案 1 :(得分:1)
现在看来正确的文档在这里:
这表示指定“opsworks”:“ruby_version”和“ruby”:“patch_version”如下:
{
"opsworks": {
"ruby_version": "2.2"
},
"ruby": {
"patch_version": "3"
}
}