krs*_*ung 1 ruby ruby-on-rails capistrano3
我目前正在使用capistrano 3在多个环境中部署我的rails 4应用程序.我想尝试在开发中转向ruby 2.1.2(我在stage/prod中运行2.0.0).假设我使用rbenv,是否有可能在单个Gemfile中以某种方式指定它?
我试图跟随我Gemfile但无济于事:
# Gemfile
group :development do
ruby '2.1.2'
end
group :staging, :production do
ruby '2.0.0'
end
Run Code Online (Sandbox Code Playgroud)
当cap部署在开发上运行时,由于感知的版本不匹配而中止.
Your Ruby version is 2.1.2, but your Gemfile specified 2.0.0
Run Code Online (Sandbox Code Playgroud)
这是它试图运行的命令.
cd /home/rails/releases/20140701151045 && ( RBENV_ROOT=~/.rbenv RBENV_VERSION=2.1.2 RAILS_ENV=development RBENV_ROOT=~/.rbenv RBENV_VERSION=2.1.2 ~/.rbenv/bin/rbenv exec bundle exec rake assets:precompile )
Run Code Online (Sandbox Code Playgroud)
非常感谢您的想法.谢谢!
更新 从@toolz输入并查看捆绑代码后,这是不可能的(或者一个好主意).有几种选择:
我选择#3选项,它将解决我的问题,似乎是最好的做法.
我做到了这一点
Gemfile
if ENV["RAILS_ENV"] == "development"
ruby '2.0.0'
elsif ENV["RAILS_ENV"] == "production"
ruby '2.1.0'
end
Run Code Online (Sandbox Code Playgroud)
然后假设您正在使用rvm,您将必须创建一个capistrano任务
rvm use 2.1.0
在生产上
| 归档时间: |
|
| 查看次数: |
981 次 |
| 最近记录: |