Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Capistrano Deploy failing error for rails - bundle: not found

This is the first time I am deploying and getting errors.

here is my deploy.rb file require 'bundler/capistrano' set :application, "app"

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

Here is the error I am getting.

*** [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

EDIT - I have commented "set :deploy_via, :remote_cache" and now getting bundle: not found error though

like image 346
iCyborg Avatar asked Mar 13 '13 07:03

iCyborg


3 Answers

OK It seems the answer is (see my comment to your question):

Have a recent rvm installed on both your workstation and the server (I have 1.17.1).

add:

gem 'rvm-capistrano'

to your Gemfile (inside group :development as the capistrano gem)

add:

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

to your config/deploy.rb

That should do it

like image 73
Peter Andersson Avatar answered Sep 25 '22 14:09

Peter Andersson


If using rbenv put this in .bashrc

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

before the following line to capistrano load the environment even if connect with non-interactive shell

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

probably will also work also with rvm initialization

like image 30
wlads Avatar answered Sep 22 '22 14:09

wlads


I've had the same problems. Below is solution for RBenv and RVM.

RBENV

Install correctly RBenv. Install bundler gem. Pefrorm 'rbenv rehash'.

Add to deploy.rb or deploy/.rb

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

RVM

Install correctly RVM. Install bundler gem.

gem 'rvm-capistrano'

deloy.rb or 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

For further configuration info read: https://github.com/wayneeseguin/rvm-capistrano

Good luck.

like image 26
Vjatseslav Gedrovits Avatar answered Sep 24 '22 14:09

Vjatseslav Gedrovits