2013-03-13 107 views
17

這是我第一次部署和獲取錯誤。Capistrano針對rails部署失敗錯誤 - 未找到包含:

這裏是我的deploy.rb文件 需要 '捆綁/ Capistrano的' 集:應用程序, 「應用程序」

set :scm, :git 
set :repository, "[email protected]: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 

編輯 - 我有評論「載:deploy_via,:remote_cache」現在越來越束:沒有發現錯誤,雖然

+0

我有一個類似的問題,我得到「捆綁未找到」。我非常肯定它與我使用RVM的事實有關,它是在.bashrc中設置的,在使用「sh」shell時不會使用它。因此,即使認爲你可以在交互式shell(比如bash)中找到ruby和bundle,也找不到它。在修復工作,但我不是unix大師,所以我還沒有答案。然而,使用「cap deploy:check」和「cap shell」,然後使用「on bundle」來獲取一些信息性的錯誤消息。 – 2013-03-22 13:06:19

回答

19

OK看來,答案是(見我你的問題的評論):

在工作站和服務器上安裝了最新的rvm(我有1.17.1)。

地址:

gem 'rvm-capistrano' 

您的Gemfile(內組:發展作爲Capistrano的寶石)

地址:

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

到你的config/deploy.rb

應該這樣做

11

如果使用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初始化工作連接

+0

你是完全正確的;非交互式的shell事情! – kubbing 2013-07-03 14:34:24

+0

+1工作,謝謝 – equivalent8 2014-11-06 12:35:31

10

我遇到過同樣的問題。以下是RBenv和RVM的解決方案。

RBENV

正確安裝RBenv。安裝捆綁軟件寶石。 Pefrorm'rbenv rehash'。

添加到deploy.rb或部署/ .RB

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

RVM

正確安裝RVM。安裝捆綁軟件寶石。

gem 'rvm-capistrano' 

deloy.rb或部署/ .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

好運。

+0

好,它的工作對我來說,以防RBENV – 2015-10-09 06:21:40