2012-11-08 79 views
1

我正在嘗試使用Capistrano部署我的Rails應用程序。使用Rails設置我的Capistrano時遇到問題

我deploy.rb文件看起來像這樣:

require "bundler/capistrano" 

server "xx.xx.xxx.xxx", :web, :db, :primary => true 

set :application,  "myApp" 
set :user,    "ubuntu" 
set :deploy_to,   "/home/#{user}/apps/#{application}" 
#set :deploy_via,  :remote_cache 
set :migrate_target, :current 
set :keep_releases,  3 

set :scm,    "git" 
set :repository,  "[email protected]:name/#{application}.git" 
set :branch,   "master" 
set :use_sudo,   false 

default_run_options[:pty] = true 

# default_run_options[:shell] = '/bin/bash' 

ssh_options[:forward_agent] = true 
ssh_options[:keys] = ["#{ENV['HOME']}/.ec2/keypair.pem"] 

現在,每當我試着做

cap deploy:cold 

我得到一個錯誤,就像下面:

https://gist.github.com/c54933142b900f9f93b9

任何幫助,將不勝感激。

+0

你是否首先執行'cap deploy:setup'? – iltempo

回答

2

我在看,我不認識的唯一的事情就是set :migrate_target :current - 這可能是默認或暗示的,所以也許沒什麼好擔心的,但是從你的主旨根本錯誤是

** [out :: xx.xx.xxx.xxx] rm: 
** [out :: xx.xx.xxx.xxx] cannot remove `/home/ubuntu/apps/myApp/current' 
** [out :: xx.xx.xxx.xxx] : Is a directory 

current應該是一個符號鏈接,而不是目錄,因此很難知道它是如何成爲目錄的。

我會登錄服務器,更改爲/home/ubuntu/apps/myApp/,然後rm -rf current。從那裏你可以手動創建預期的符號鏈接(當前將鏈接到名稱爲日期/時間的目錄),或者從本地機器運行cap deploy:create_symlink然後嘗試定期部署。

我認爲可以公平地說,capistrano初始化並不是很強大的套裝 - 一旦你把事情做好了,它往往會變得非常可怕,在那之前,更多的只是令人憤慨的遲鈍。

相關問題