My capistrano script cannot connect to my github private repository.
here is some of my deploy.rb file:
set :scm, :git
set :repository, "git#github.com:ohenrik/imagesite.git"
set :ssh_options, { :forward_agent => true }
set :deploy_to, "/home/rails/apps/#{application}"
I have tested agent forwariding on my server and it seems to be working (i can get authorised by github without password or other ssh keys installed).
I think I have the right repository address now, but I'm not sure.
Edit, I get this output:
Oles-MacBook-Pro:imagesite ohenrik$ cap production deploy
triggering load callbacks
* 2014-03-29 21:48:42 executing `production'
triggering start callbacks for `deploy'
* 2014-03-29 21:48:42 executing `multistage:ensure'
* 2014-03-29 21:48:42 executing `deploy'
* 2014-03-29 21:48:42 executing `deploy:update'
** transaction: start
* 2014-03-29 21:48:42 executing `deploy:update_code'
updating the cached checkout on all servers
executing locally: "git ls-remote git#github.com:ohenrik/imagesite.git master"
command finished in 4123ms
* executing "if [ -d /home/rails/apps/imagesite/shared/cached-copy ]; then cd /home/rails/apps/imagesite/shared/cached-copy && git fetch -q origin && git fetch --tags -q origin && git reset -q --hard ce911e1e458b98ba001a2f5a919e3414817e833e && git clean -q -d -x -f; else git clone -q -b master git#github.com:ohenrik/imagesite.git /home/rails/apps/imagesite/shared/cached-copy && cd /home/rails/apps/imagesite/shared/cached-copy && git checkout -q -b deploy ce911e1e458b98ba001a2f5a919e3414817e833e; fi"
servers: ["theatrical.co"]
[theatrical.co] executing command
** [theatrical.co :: out] Username for 'https://github.com':
The scrip hangs on the last line.
Try clearing out the old cached copy -- if you changed the git repository in deploy.rb, Capistrano doesn't automatically update the repository in the cached copy on the server.
$ ssh {production server}
$ rm -rf /home/rails/apps/imagesite/shared/cached-copy
$ exit
$ cap production deploy
Related
What is the proper way to deploy:setup and to do a cold deploy with Capistrano?
Using
this deploy.rb
Capistrano v2.14.2
Vagrant to virtualize my server,
this is my scenario:
when running deploy:setup, Capistrano makes use of root privileges to prepare the directory structure for deployment:
$ cap deploy:setup
* 2013-02-28 14:50:21 executing `deploy:setup'
* executing "sudo -p 'sudo password: ' mkdir -p /home/vagrant/example /home/vagrant/example/releases /home/vagrant/example/shared /home/vagrant/example/shared/system /home/vagrant/example/shared/log /home/vagrant/example/shared/pids"
servers: ["example.com"]
[example.com] executing command
command finished in 29ms
* executing "sudo -p 'sudo password: ' chmod g+w /home/vagrant/example /home/vagrant/example/releases /home/vagrant/example/shared /home/vagrant/example/shared/system /home/vagrant/example/shared/log /home/vagrant/example/shared/pids"
servers: ["example.com"]
[example.com] executing command
command finished in 11ms
yet upon deploy:cold Capistrano attempts to checkout (from git in this case) and write as the vagrant user – the user specified in deploy.rb:
$ cap deploy:cold
* 2013-02-28 14:50:47 executing `deploy:cold'
* 2013-02-28 14:50:47 executing `deploy:update'
** transaction: start
* 2013-02-28 14:50:47 executing `deploy:update_code'
updating the cached checkout on all servers
executing locally: "git ls-remote git#github.com:mariusbutuc/realtime-faye.git master"
command finished in 2360ms
* executing "if [ -d /home/vagrant/example/shared/cached-copy ]; then cd /home/vagrant/example/shared/cached-copy && git fetch -q origin && git fetch --tags -q origin && git reset -q --hard a7c05516bc31c2c18f89057c02f84bfad83a6b59 && git clean -q -d -x -f; else git clone -q git#github.com:mariusbutuc/realtime-faye.git /home/vagrant/example/shared/cached-copy && cd /home/vagrant/example/shared/cached-copy && git checkout -q -b deploy a7c05516bc31c2c18f89057c02f84bfad83a6b59; fi"
servers: ["example.com"]
[example.com] executing command
** [example.com :: out] fatal: could not create work tree dir '/home/vagrant/example/shared/cached-copy'.: Permission denied
command finished in 26ms
*** [deploy:update_code] rolling back
* executing "rm -rf /home/vagrant/example/releases/20130228195049; true"
servers: ["example.com"]
[example.com] executing command
command finished in 7ms
failed: "sh -c 'if [ -d /home/vagrant/example/shared/cached-copy ]; then cd /home/vagrant/example/shared/cached-copy && git fetch -q origin && git fetch --tags -q origin && git reset -q --hard a7c05516bc31c2c18f89057c02f84bfad83a6b59 && git clean -q -d -x -f; else git clone -q git#github.com:mariusbutuc/realtime-faye.git /home/vagrant/example/shared/cached-copy && cd /home/vagrant/example/shared/cached-copy && git checkout -q -b deploy a7c05516bc31c2c18f89057c02f84bfad83a6b59; fi'" on example.com
Of course, the deploy:check report bares no surprises: the vagrant user cannot write in the directories created during deploy:setup since the two users belong to different groups – root:root versus vagrant:vagrant:
$ cap deploy:check
[...]
The following dependencies failed. Please check them and try again:
--> You do not have permissions to write to `/home/vagrant/example'. (example.com)
--> You do not have permissions to write to `/home/vagrant/example/releases'. (example.com)
--> `/home/vagrant/example/shared' is not writable (example.com)
What is the reasoning behind this, and what prerequisite is not satisfied yet so the deployment passes this issue?
The deploy:setup task probably should not be using sudo to create the app directory, since that is likely causing it to be owned by root.
You can turn that off in your deploy.rb file with:
set :use_sudo, false
Since there are no group setting in Capistrano my workaround is to extend such a setting, for example:
set :user, 'vagrant'
set :group, 'vagrant'
and then create a task to "fix" the ownership after running deploy:setup:
after "deploy:setup", :setup_ownership
task :setup_ownership do
run "#{sudo} chown -R #{user}:#{group} #{deploy_to} && chmod -R g+s #{deploy_to}"
end
But the only thing better than fixing an issue is not having it in the first place, so Stuart's answer is both wiser and more elegant.
I am really stuck with this deployment, I am using Ryan Bates code from railcasts on deploying with capistrano.
Here is my deploy
require "bundler/capistrano"
load "config/recipes/base"
load "config/recipes/nginx"
load "config/recipes/unicorn"
load "config/recipes/postgresql"
load "config/recipes/nodejs"
load "config/recipes/rbenv"
load "config/recipes/check"
server "37.188.126.99", :web, :app, :db, primary: true
set :user, "deployer"
set :application, "TWL"
set :deploy_to, "/home/#{user}/apps/#{application}"
set :deploy_via, :remote_cache
set :use_sudo, false
set :scm, "git"
#set :repository, "git#github.com:acooperman/#{application}.git"
set :repository, "git#github.com:acooperman/TWL.git"
#set :repository, "https://github.com/acooperman/TWL.git"
set :branch, "master"
default_run_options[:pty] = true
ssh_options[:forward_agent] = true
after "deploy", "deploy:cleanup" # keep only the last 5 releases
And here is the result :
$ cap deploy:update
* executing `deploy:update'
** transaction: start
* executing `deploy:update_code'
updating the cached checkout on all servers
executing locally: "git ls-remote git#github.com:acooperman/TWL.git master"
Permission denied (publickey).
fatal: The remote end hung up unexpectedly
*** [deploy:update_code] rolling back
* executing "rm -rf /home/deployer/apps/TWL/releases/20120611173529; true"
servers: ["37.188.126.99"]
Password:
[37.188.126.99] executing command
command finished in 340ms
Command git ls-remote git#github.com:acooperman/TWL.git master returned status code pid 3500 exit 128
If I swap the comments on the line
set :repository, "git#github.com:acooperman/TWL.git"
#set :repository, "https://github.com/acooperman/TWL.git"
I get the following :
* executing `deploy:update'
** transaction: start
* executing `deploy:update_code'
updating the cached checkout on all servers
executing locally: "git ls-remote https://github.com/acooperman/TWL.git master"
Username for 'https://github.com':
Password for 'https://acooperman#github.com':
command finished in 7893ms
* executing "if [ -d /home/deployer/apps/TWL/shared/cached-copy ]; then cd /home/deployer/apps/TWL/shared/cached-copy && git
fetch -q origin && git fetch --tags -q origin && git reset -q --hard 418c9e9b1d7b37427a76e6bf98a17722f3a9e863 && git clean -q
-d -x -f; else git clone -q https://github.com/acooperman/TWL.git /home/deployer/apps/TWL/shared/cached-copy && cd /home/depl
oyer/apps/TWL/shared/cached-copy && git checkout -q -b deploy 418c9e9b1d7b37427a76e6bf98a17722f3a9e863; fi"
servers: ["37.188.126.99"]
Password:
[37.188.126.99] executing command
** [37.188.126.99 :: out] error: The requested URL returned error: 401 while accessing https://github.com/acooperman/TWL.git/
info/refs
**
** fatal: HTTP request failed
command finished in 1590ms
*** [deploy:update_code] rolling back
* executing "rm -rf /home/deployer/apps/TWL/releases/20120611173441; true"
servers: ["37.188.126.99"]
[37.188.126.99] executing command
command finished in 331ms
failed: "sh -c 'if [ -d /home/deployer/apps/TWL/shared/cached-copy ]; then cd /home/deployer/apps/TWL/shared/cached-copy && gi
t fetch -q origin && git fetch --tags -q origin && git reset -q --hard 418c9e9b1d7b37427a76e6bf98a17722f3a9e863 && git clean -
q -d -x -f; else git clone -q https://github.com/acooperman/TWL.git /home/deployer/apps/TWL/shared/cached-copy && cd /home/dep
loyer/apps/TWL/shared/cached-copy && git checkout -q -b deploy 418c9e9b1d7b37427a76e6bf98a17722f3a9e863; fi'" on 37.188.126.99
Git works fine from my new vps and does not require a password.
I really am stuck here and any help would be appreciated, I am completely new to capistrano and fairly new to rails so this really does have me stumped.
Thanks for any help :)
Adam
looks like your ssh key is not in the default location, try setting a pass to your ssh key manually
ssh_options[:keys] = ["PATH TO SSH/id_rsa]
I have uploaded a app in production mode to linode.
I want make changes in local app in css, javascript, controllers, models, or any file that I need change or update code and after deploy in my remote app.
I use capistrano, and I have this recipe in deploy.rb file.
$:.unshift(File.expand_path('./lib', ENV['rvm_path'])) # Add RVM's lib directory to the load pathe
require "rvm/capistrano" # Load RVM's capistrano plugin.
require "bundler/capistrano"
set :rvm_ruby_string, 'ruby-1.9.2-p318#global'
set :rvm_type, :user
set :application, "app.com"
set :user, 'myuser'
set :repository, "#{user}#ip.ip.ip.ip:~/app"
ssh_options[:forward_agent] = true
set :scm, :git
set :use_sudo, false
set :keep_releases, 1
set :deploy_to, "~/#{application}"
#set :deploy_via, :copy
set :deploy_via, :remote_cache
role :web, "ip.ip.ip.ip" # Your HTTP server, Apache/etc
role :app, "ip.ip.ip.ip" # This may be the same as your `Web` server
role :db, "ip.ip.ip.ip", :primary => true # This is where Rails migrations will run
load 'deploy/assets'
The problem is that when I run cap deploy the process is very very slow take a 5 or 6 minutes in deploy If I want change 2 files or add a gem I want update only those files that have changed.
How can I speed up the deploy with capistrano. With git I go very fast but I have that enter more command, git add . git commit...
Note**
I have check with set :deploy_via, :remote_cache but I get errors with permissions in log of capistrano :O.
Log capistrano after cap deploy
[ip.ip.ip.ip] executing command
[ip.ip.ip.ip] rvm_path=$HOME/.rvm/ $HOME/.rvm/bin/rvm-shell 'ruby-1.9.2-p318#global' -c 'if [ -d ~/app.com/shared/cached-copy ]; then cd ~/app.com/shared/cached-copy && git fetch -q origin && git fetch --tags -q origin && git reset -q --hard e142768dc6351878cb45712dca8d31ead4ffb40c && git clean -q -d -x -f; else git clone -q myuser#ip.ip.ip.ip:~/app ~/app.com/shared/cached-copy && cd ~/app.com/shared/cached-copy && git checkout -q -b deploy e142768dc6351878cb45712dca8d31ead4ffb40c; fi'
** [ip.ip.ip.ip :: err] Permission denied, please try again.
** [ip.ip.ip.ip :: err] Permission denied, please try again.
** [ip.ip.ip.ip :: err] Permission denied (publickey,password).
** [ip.ip.ip.ip :: err] fatal: The remote end hung up unexpectedly
command finished in 1337ms
*** [deploy:update_code] rolling back
* executing "rm -rf ~/app.com/releases/20120325150641; true"
servers: ["ip.ip.ip.ip"]
[ip.ip.ip.ip] executing command
[ip.ip.ip.ip] rvm_path=$HOME/.rvm/ $HOME/.rvm/bin/rvm-shell 'ruby-1.9.2-p318#global' -c 'rm -rf ~/app.com/releases/20120325150641; true'
command finished in 702ms
failed: "rvm_path=$HOME/.rvm/ $HOME/.rvm/bin/rvm-shell 'ruby-1.9.2-p318#global' -c 'if [ -d ~/app.com/shared/cached-copy ]; then cd ~/app.com/shared/cached-copy && git fetch -q origin && git fetch --tags -q origin && git reset -q --hard e142768dc6351878cb45712dca8d31ead4ffb40c && git clean -q -d -x -f; else git clone -q myuser#ip.ip.ip.ip:~/app ~/app.com/shared/cached-copy && cd ~/app.com/shared/cached-copy && git checkout -q -b deploy e142768dc6351878cb45712dca8d31ead4ffb40c; fi'" on 109.74.195.41
After create cached-copy directory
myuser#myuser:~/app.com/current$ if [ -d ~/app.com/shared/cached-copy ];
> then cd ~/app.com/shared/cached-copy && git fetch -q origin && git fetch --tags -q origin && git reset -q --hard e142768dc6351878cb45712dca8d31ead4ffb40c && git clean -q -d -x -f; else git clone -q myuser#ip.ip.ip.ip:~/app ~/app.com/shared/cached-copy && cd ~/app.com/shared/cached-copy && git checkout -q -b deploy e142768dc6351878cb45712dca8d31ead4ffb40c; fi
myuser#ip.ip.ip.ip's password:
myuser#ip.ip.ip.ip:~/app.com/shared/cached-copy$
Thank you very much!
The first thing I would suggest to speed it up is getting the deploy_via :remote_cache working. You need to make sure that the remote user can authenticate to your git repo, which means configuring your SSH key on the remote server to connect.
Try setting this:
ssh_options[:forward_agent] = true
Github has a great help article on getting it working:
http://help.github.com/deploy-with-capistrano/
If you're only updating a couple of files, you often don't need to deploy your entire application. Capistrano has a deploy:upload task for exactly this purpose:
cap deploy:upload FILES=file1,file2,file3
Since it expects the files in an environment variable, it's kind of a pain to upload multiple files with it. I wrote this script to make it a little easier to use:
#!/bin/bash
cap deploy:upload FILES=`perl -le 'print join "," => #ARGV' $#`
Save that somewhere in your path, and you can just pass paths as command line arguments. Then restart your application:
upload app/models/{user,product}.rb config/application.rb
cap deploy:restart
I'm getting permissions errors while trying to deploy my rails app to a friend's server. I'm running rails 3.1.3, ruby-1.9.2-p290, capistrano 2.11.2, Mac OS 10.6.8, and we have ssh keys set up. However, we can't figure out where the permission issues are coming from. We think it might be that capistrano is trying to push the code from the git repo AS THE GIT USER to the deploy directory, or something like that. But this is our first deploy attempt, so we're not sure. Any help would be hugely appreciated!
Oh, and here's some more details that my friend told me to specify:
appsrv-04.example.ca is the canonical FQDN of the host, and project.example.ca is a CNAME pointing to the A record of appsrv-04.example.ca. The known_hosts file for the git and deploy users contains all of appsrv-04, appsrv-04.example.ca, project, and project.example.ca.
Below is the output from running cap deploy:update.
[user#workstation]~/Code/projectapi $ cap deploy:update
* executing `deploy:update'
** transaction: start
* executing `deploy:update_code'
updating the cached checkout on all servers
executing locally: "git ls-remote ssh://git#appsrv-04.example.ca/usr/local/git_root/projectapi.git master"
Enter passphrase for key '/Users/user/.ssh/id_rsa':
command finished in 4478ms
* executing "if [ -d /usr/local/www/sites/project.example.ca/public/shared/cached-copy ]; then cd /usr/local/www/sites/project.example.ca/public/shared/cached-copy && git fetch -q origin && git fetch --tags -q origin && git reset -q --hard e71d220f299271522517f7b4f028a9275d53326a && git clean -q -d -x -f; else git clone -q ssh://git#appsrv-04.example.ca/usr/local/git_root/projectapi.git /usr/local/www/sites/project.example.ca/public/shared/cached-copy && cd /usr/local/www/sites/project.example.ca/public/shared/cached-copy && git checkout -q -b deploy e71d220f299271522517f7b4f028a9275d53326a; fi"
servers: ["project.example.ca"]
Enter passphrase for /Users/user/.ssh/id_dsa:
[project.example.ca] executing command
** [project.example.ca :: err] Permission denied, please try again.
** [project.example.ca :: err] Permission denied, please try again.
** [project.example.ca :: err] Permission denied (publickey,password).
** [project.example.ca :: err] fatal: The remote end hung up unexpectedly
command finished in 650ms
*** [deploy:update_code] rolling back
* executing "rm -rf /usr/local/www/sites/project.example.ca/public/releases/20120222225453; true"
servers: ["project.example.ca"]
[project.example.ca] executing command
command finished in 465ms
failed: "rvm_path=/usr/local/rvm /usr/local/rvm/bin/rvm-shell '1.9.2-p290#project' -c 'if [ -d /usr/local/www/sites/project.example.ca/public/shared/cached-copy ]; then cd /usr/local/www/sites/project.example.ca/public/shared/cached-copy && git fetch -q origin && git fetch --tags -q origin && git reset -q --hard e71d220f299271522517f7b4f028a9275d53326a && git clean -q -d -x -f; else git clone -q ssh://git#appsrv-04.example.ca/usr/local/git_root/projectapi.git /usr/local/www/sites/project.example.ca/public/shared/cached-copy && cd /usr/local/www/sites/project.example.ca/public/shared/cached-copy && git checkout -q -b deploy e71d220f299271522517f7b4f028a9275d53326a; fi'" on project.example.ca
And here's my deploy file:
$:.unshift(File.expand_path('./lib', ENV['rvm_path']))
require "rvm/capistrano"
set :application, "Project"
set :scm, "git"
set :repository, "ssh://git#appsrv-04.example.ca/usr/local/git_root/project.git"
set :user, "deploy"
#set :rvm_bin_path, "/usr/local/rvm/bin"
set :rvm_ruby_string, "1.9.2-p290#project"
ssh_options[:forward_agent] = true
set :branch, "master"
set :deploy_via, :remote_cache
set :deploy_to, "/usr/local/www/sites/project.example.ca/public/"
set :use_sudo, false
set :domain, 'project.example.ca'
role :app, domain
role :web, domain
role :db, domain, :primary => true
You've almost certainly diagnosed this issue correctly; you're trying to check out the github repository as the deploy user and the forwarded key isn't being set up correctly. It looks like you have forward_agent turned on in Capistrano... are you adding your key to your agent so that it gets forwarded correctly?
Try doing that with ssh-add ~/.ssh/id-rsa and deploying again.
Problem solved. The virtual host was created by cloning an existing one and changing the IP. I updated the /etc/hosts file to use the new hostname, but apparently not the new IP. So when the deploy user was trying to ssh as the git user... it was failing because there is no git user on the IP it was using.
I have a Rails 3.1.1 app that I am trying to deploy via Capistrano. This is my first attempt at this and I have worked through several issues by doing a lot of research, but I have hit a wall that I can not figure out a way to scale.
I can run cap deploy:setup and cap deploy:check without incident. When I try and run cap deploy this is what I get see bottom (separated text concerning the rake 0.9.2.2 and the failed line at the bottom)
Aaron-Johnsons-Macbook-Pro:webd2 aaronjohnsonis$ cap deploy *
executing deploy' * executingdeploy:update' ** transaction:
start * executing deploy:update_code'
updating the cached checkout on all servers
executing locally: "git ls-remote git#github.com:webdsquared/webd2.git master"
command finished in 2351ms * executing "if [ -d /home/webdsqua/apps/webd2/shared/cached-copy ]; then cd
/home/webdsqua/apps/webd2/shared/cached-copy && git fetch origin &&
git fetch --tags origin && git reset --hard
28e67c5f7e1ed4612dffd2ac4fb287356f51ce3b && git submodule init && for
mod ingit submodule status | awk '{ print $2 }'; do git config -f
.git/config submodule.${mod}.urlgit config -f .gitmodules --get
submodule.${mod}.url&& echo Synced $mod; done && git submodule sync
&& export GIT_RECURSIVE=$([ ! \"git --version\" \\< \"git version
1.6.5\" ] && echo --recursive) && git submodule update --init $GIT_RECURSIVE && git clean -d -x -f; else git clone --depth 1
git#github.com:webdsquared/webd2.git
/home/webdsqua/apps/webd2/shared/cached-copy && cd
/home/webdsqua/apps/webd2/shared/cached-copy && git checkout -b deploy
28e67c5f7e1ed4612dffd2ac4fb287356f51ce3b && git submodule init && git
submodule sync && export GIT_RECURSIVE=$([ ! \"git --version\" \\<
\"git version 1.6.5\" ] && echo --recursive) && git submodule update
--init $GIT_RECURSIVE; fi"
servers: ["webdsquared.com"] Password:
[webdsquared.com] executing command ** [webdsquared.com :: out] HEAD is now at 28e67c5 initial commit
command finished in 2428ms
copying the cached version to /home/webdsqua/apps/webd2/releases/20111104183017 * executing "cp
-RPp /home/webdsqua/apps/webd2/shared/cached-copy /home/webdsqua/apps/webd2/releases/20111104183017 && (echo
28e67c5f7e1ed4612dffd2ac4fb287356f51ce3b >
/home/webdsqua/apps/webd2/releases/20111104183017/REVISION)"
servers: ["webdsquared.com"]
[webdsquared.com] executing command
command finished in 2997ms * executingdeploy:finalize_update'
triggering before callbacks for deploy:finalize_update' * executingdeploy:assets:symlink' * executing "rm -rf
/home/webdsqua/apps/webd2/releases/20111104183017/public/assets &&\\n
mkdir -p /home/webdsqua/apps/webd2/releases/20111104183017/public
&&\\n mkdir -p /home/webdsqua/apps/webd2/shared/assets &&\\n
ln -s /home/webdsqua/apps/webd2/shared/assets
/home/webdsqua/apps/webd2/releases/20111104183017/public/assets"
servers: ["webdsquared.com"]
[webdsquared.com] executing command
command finished in 1104ms * executing "chmod -R g+w /home/webdsqua/apps/webd2/releases/20111104183017"
servers: ["webdsquared.com"]
[webdsquared.com] executing command
command finished in 119ms * executing "rm -rf /home/webdsqua/apps/webd2/releases/20111104183017/log
/home/webdsqua/apps/webd2/releases/20111104183017/public/system
/home/webdsqua/apps/webd2/releases/20111104183017/tmp/pids &&\\n
mkdir -p /home/webdsqua/apps/webd2/releases/20111104183017/public
&&\\n mkdir -p
/home/webdsqua/apps/webd2/releases/20111104183017/tmp &&\\n ln
-s /home/webdsqua/apps/webd2/shared/log /home/webdsqua/apps/webd2/releases/20111104183017/log &&\\n ln
-s /home/webdsqua/apps/webd2/shared/system /home/webdsqua/apps/webd2/releases/20111104183017/public/system &&\\n
ln -s /home/webdsqua/apps/webd2/shared/pids
/home/webdsqua/apps/webd2/releases/20111104183017/tmp/pids"
servers: ["webdsquared.com"]
[webdsquared.com] executing command
command finished in 3136ms
triggering after callbacks for deploy:update_code' * executingdeploy:assets:precompile' * executing "cd
/home/webdsqua/apps/webd2/releases/20111104183017 && rake
RAILS_ENV=production RAILS_GROUPS=assets assets:precompile"
servers: ["webdsquared.com"]
[webdsquared.com] executing command
** [out :: webdsquared.com] (in /home/webdsqua/apps/webd2/releases/20111104183017) ** [out >::
webdsquared.com] Could not find rake-0.9.2.2 in any of the sources
command finished in 1108ms
* [deploy:update_code] rolling back * executing "rm -rf /home/webdsqua/apps/webd2/releases/20111104183017; true"
servers: ["webdsquared.com"]
[webdsquared.com] executing command
**command finished in 113ms failed: "sh -c 'cd /home/webdsqua/apps/webd2/releases/20111104183017 && rake
RAILS_ENV=production RAILS_GROUPS=assets assets:precompile'" on
webdsquared.com**
My deploy.rb file looks like this...
set :application, "app"
set :repository, "git#github.com:webdsquared/app.git"
set :scm, "git"
set :deploy_to, "/home/username/apps/#{application}"
set :user, "username"
set :use_sudo, false
set :deploy_via, :remote_cache
set :keep_releases, 3
set :normalize_asset_timestamps, false
set :git_enable_submodules, 1
set :branch, "master"
set :git_shallow_clone, 1
set :scm_verbose, true
role :web, "webdsquared.com"
role :app, "webdsquared.com"
role :db, "webdsquared.com", :primary => true
after "deploy", "deploy:restart"
namespace :deploy do
task :start do ; end
task :stop do ; end
task :restart, :roles => :app, :except => { :no_release => true } do
run "touch #{File.join(current_path,'tmp','restart.txt')}"
end
end
The Capfile looks like this...
load 'deploy' if respond_to?(:namespace) # cap2 differentiator
Dir['vendor/gems/*/recipes/*.rb','vendor/plugins/*/recipes/*.rb'].each { |plugin| load(plugin) }
load 'config/deploy' # remove this line to skip loading any of the default tasks
Any advice would be most appreciated. Has anyone experienced the same thing and found a solution?
Thanks in advance.
What version of capistrano are you running? Are you using bundler in your application? The problem is that capistrano is not using bundle exec when running commands... It should be running bundle exec rake... not just rake...