18

这是我第一次部署并遇到错误。

这是我的 deploy.rb 文件需要 'bundler/capistrano' set :application, "app"

set :scm, :git
set :repository,  "git@github.com:myname/#{application}.git"
set :branch, "master"

server "198.12.78.92", :web, :app, :db, primary: true
set :user, "myname"
set :deploy_to, "/home/#{user}/public_html/#{application}"
set :deploy_via, :remote_cache
set :use_sudo, false

default_run_options[:pty] = true
ssh_options[:forward_agent] = true

 namespace :deploy do
   task :start do ; end
   task :stop do ; end
   task :restart, :roles => :app, :except => { :no_release => true } do
     run "#{try_sudo} touch #{File.join(current_path,'tmp','restart.txt')}"
   end
 end

这是我得到的错误。

*** [deploy:update_code] rolling back
  * executing "rm -rf /home/myname/public_html/app/releases/20130313073408; true"
    servers: ["198.12.78.92"]
    [198.12.78.92] executing command
    command finished in 891ms
failed: "sh -c 'cp -RPp /home/myname/public_html/app/shared/cached-copy /home/myname/public_html/app/releases/20130313073408 && (echo dd92017bc8bb7f951df52d6a14c933e3033fd24b > /home/myname/public_html/app/releases/20130313073408/REVISION)'" on 198.12.78.92

编辑 - 我已经评论了“set :deploy_via, :remote_cache”,现在得到 bundle: not found 错误

4

3 回答 3

19

好的,答案似乎是(请参阅我对您的问题的评论):

在您的工作站和服务器上都安装了最新的 rvm(我有 1.17.1)。

添加:

gem 'rvm-capistrano'

到您的 Gemfile(在组内:开发为 capistrano gem)

添加:

require "rvm/capistrano"
require "bundler/capistrano"

到您的 config/deploy.rb

应该这样做

于 2013-03-22T13:14:53.447 回答
12

如果使用 rbenv 把它放在 .bashrc

export PATH="$HOME/.rbenv/bin:$PATH"
eval "$(rbenv init -)"

在以下行之前到 capistrano 加载环境,即使与非交互式 shell 连接

# If not running interactively, don't do anything
[ -z "$PS1" ] && return

可能也适用于 rvm 初始化

于 2013-05-26T19:38:35.267 回答
10

我有同样的问题。下面是 RBenv 和 RVM 的解决方案。

RBENV

正确安装 RBenv。安装捆绑器 gem。执行'rbenv rehash'。

添加到 deploy.rb 或 deploy/.rb

set :default_environment, { 'PATH' => '$HOME/.rbenv/shims:$HOME/.rbenv/bin:$PATH' }

虚拟机

正确安装 RVM。安装捆绑器 gem。

gem 'rvm-capistrano'

deloy.rb 或 deploy/.rb

require 'rvm/capistrano'
set :rvm_ruby_string, 'ruby-2.0.0-p247' # Change to your ruby version
set :rvm_type, :system # :user if RVM installed in $HOME

有关更多配置信息,请阅读:https ://github.com/wayneeseguin/rvm-capistrano

祝你好运。

于 2013-10-28T09:09:15.170 回答