2015-03-18 39 views
0

我使用gem Capistrano〜2.15.5並將我的應用程序部署到我的遠程服務器。一切正常,直到cap prod部署命令結束。我收到此錯誤:部署與capistrano錯誤:.../REVISION沒有這樣的文件或目錄

** [52.74.34.196 :: out] /bin/bash: ebs/apps/CloudTrendz/releases/20150318203140/REVISION: No such file or directory 
** [52.74.34.196 :: out] 
command finished in 4923ms 
*** [deploy:update_code] rolling back 
* executing "rm -rf ebs/apps/CloudTrendz/releases/20150318203140; true" 
servers: ["52.74.34.196"] 
[52.74.34.196] executing command 
command finished in 411ms 
failed: "/bin/bash --login -c 'git clone -b master [email protected]:prashant4224/CloudTrendz.git ebs/apps/CloudTrendz/releases/20150318203140 && cd ebs/apps/CloudTrendz/releases/20150318203140 && git checkout -b deploy 16cc51ebe1acd97cb489f10313d85f7ae9a69f6b && rm -Rf ebs/apps/CloudTrendz/releases/20150318203140/.git && (echo 16cc51ebe1acd97cb489f10313d85f7ae9a69f6b > ebs/apps/CloudTrendz/releases/20150318203140/REVISION)'" on 52.74.34.196 

這裏deploy.rb

require "bundler/capistrano" 

set :application, "CloudTrendz" 
set :repository, "[email protected]:prashant4224/CloudTrendz.git" 
set :deploy_to, "ebs/apps/#{application}" 
set :applicationdir, "ebs/apps/#{application}" 

set :scm, :git # You can set :scm explicitly or Capistrano will make an intelligent guess based on known version control directory names 

set :branch, "master" 


set :deploy_to, applicationdir 
set :deploy_via, :export 
set :scm_verbose, true 

set :user, "ubuntu" 
set :use_sudo, false 
set :rails_env, "production" 

set :keep_releases, 2 
set :precompile_only_if_changed, true 

default_run_options[:pty] = true 
default_run_options[:shell] = '/bin/bash --login' 

ssh_options[:keys] = %w(~/.ssh/prashantec2.pem) 

after "deploy:update_code", "deploy:copy_configs" 


task :prod do 
set :domain, "52.74.34.196" 
set :repository, "[email protected]:prashant4224/CloudTrendz.git" 
set :local_repository, "[email protected]:prashant4224/CloudTrendz.git" 
set :branch, "master" 
set :scm_verbose, true 
server "52.74.34.196", :app, :web, :db, :primary => true 
set :deploy_env, "prod" 
"deploy" 
end 

namespace :deploy do 

task :copy_configs, :roles => :app do 
    run "cp #{release_path}/../../shared/database.yml #{release_path}/config/database.yml" 
end 

task :migrate, :roles => :app do 
    run "cd #{release_path} && bundle exec rake db:migrate" 
end 

task :restart, :roles => :app, :except => { :no_release => true } do 

    run "#{try_sudo} touch #{File.join(current_path, 'tmp', 'restart.txt')}" 
    if deploy_env == 'prod' 
    tag_name = Time.now.strftime("deploy_%Y_%m_%d_%H_%M") 

    system "git tag -a -m 'Deployment on prod' #{tag_name}" 

    system "git push origin #{tag_name}" 
    if $? != 0 
     raise "Pushing tag to origin failed" 
    end 
    end 
end 

namespace :assets do 
    task :precompile, :roles => :web, :except => { :no_release => true } do 
    logger.info "Skipping asset pre-compilation because there were no asset changes" 
    end 
end 

end 

after "deploy:update", "deploy:migrate", "deploy:cleanup" 

什麼是錯的代碼?

預先感謝您

回答

0

在我看來就像是克隆從GitHub git倉庫時失敗。確保您已將遠程服務器的SSH密鑰添加到Github存儲庫。

可以驗證這是否是由SSH'ing到遠程服務器,並嘗試運行問題:

git clone [email protected]:prashant4224/CloudTrendz.git 

如果失敗,複製~/.ssh/id_rsa.pub內容,然後去https://github.com/prashant4224/CloudTrendz/settings/keys,單擊「添加部署密鑰「並粘貼。

如果在遠程服務器上不存在~/.ssh/id_rsa.pub,請運行ssh-keygen來創建它。

+0

已經添加了密鑰,但仍然是相同的錯誤@infused – Prashant4224 2015-03-20 18:45:00

+0

您是否能夠從遠程服務器手動克隆存儲庫? – infused 2015-03-20 18:46:07

+0

是的,我可以在遠程服務器上手動克隆存儲庫@infused – Prashant4224 2015-03-20 18:50:23

相關問題