【发布时间】:2017-05-02 16:58:23
【问题描述】:
好的。所以我正在尝试使用 capistrano 部署新版本的应用程序。我正在使用 rbenv,并安装了 1.8.7(用于旧应用程序)和 2.4.1(用于新应用程序)。我的 Capfile 包括:
require "capistrano/rbenv"
还有我的 deploy.rb:
set :rbenv_type, :user
set :rbenv_ruby, "2.4.1"
namespace :deploy do
desc "Show ruby version"
task :ruby_version do
on roles(:all) do |h|
execute "ruby --version"
execute "rbenv versions"
end
end
end
运行cap production deploy:ruby_version 产生:
00:00 deploy:ruby_version
01 ruby --version
01 ruby 1.8.7 (2012-06-29 patchlevel 370) [x86_64-linux]
✔ 01 deploy@example.com 0.390s
02 rbenv versions
02 system
02 * 1.8.7-p370 (set by /home/deploy/.rbenv/version)
02 2.4.1
✔ 02 deploy@example.com 0.371s
我尝试了很多方法——set :default_env, {"RBENV_VERSION => "2.4.1"},删除了/home/deploy/.rbenv/version(这让我使用了system ruby)——但似乎没有什么可以让 rbenv_ruby 覆盖其他设置。
将rbenv_ruby 设置为不存在的版本会引发错误,因此它似乎在做某事。
我要疯了。我做错了什么?
【问题讨论】:
-
您是否尝试过将
~/.ruby-version文件与2.4.1一起使用? -
是的,这给了我 2.4.1。不过,我仍然希望能够在 deploy.rb 文件中设置版本。
标签: ruby-on-rails ruby capistrano rbenv