0

Capistrano gem とこのチュートリアルを使用して、アプリケーションをリモート サーバーにデプロイしています。コマンドが終了するまで、すべてが正常に機能しcap deployます。次のエラーが表示されます。

 ** [ps123456.dreamhostps.com :: out] sh: myapp.git/releases/20130916201449/REVISION: No such file or directory
    command finished in 2266ms
*** [deploy:update_code] rolling back
  * executing "rm -rf myapp.git/releases/20130916201449; true"
    servers: ["ps123456.dreamhostps.com"]
    [ps123456.dreamhostps.com] executing command
    command finished in 254ms
failed: "sh -c 'git clone --depth 1 ssh://username@ps123456.dreamhostps.com/~/myapp.git myapp.git/releases/20130916201449 && cd myapp.git/releases/20130916201449 && git checkout -b deploy 497af4d996358f8d1f42dc9658e276ee8d9fa64f && git submodule init && git submodule sync && export GIT_RECURSIVE=$([ ! \"`git --version`\" \\< \"git version 1.6.5\" ] && echo --recursive) && git submodule update --init $GIT_RECURSIVE && rm -Rf myapp.git/releases/20130916201449/.git && (echo 497af4d996358f8d1f42dc9658e276ee8d9fa64f > myapp.git/releases/20130916201449/REVISION)'" on ps123456.dreamhostps.com

これが私のものdeploy.rbです:

require 'bundler/capistrano'
set :user, 'username'
set :domain, 'ps123456.dreamhostps.com'
set :applicationdir, "myapp.git"

default_run_options[:pty] = true
set :scm, 'git'
set :repository,  "ssh://username@ps123456.dreamhostps.com/~/myapp.git"
set :git_enable_submodules, 1 # if you have vendored rails
set :branch, 'master'
set :git_shallow_clone, 1
set :scm_verbose, true

# roles (servers)
role :web, domain
role :app, domain
role :db,  domain, :primary => true

# deploy config
set :deploy_to, applicationdir
set :deploy_via, :export

# additional settings
default_run_options[:pty] = true  # Forgo errors when deploying from windows

# Passenger
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

何がうまくいかないのですか?

4

2 に答える 2

1

正確に言うのは難しいですがreleases/#{revision}、git リビジョンをファイル REVISION にプッシュしようとすると、ディレクトリが見つからないことは明らかです。

おそらく修正される可能性が高い問題の 1 つ:deploy_toは、クローン元の git リポジトリと同じマシン上の同じディレクトリがディレクトリであることです。代わりにこれを試してください:

あなたの deploy.rb で

set :deploy_to, "/home/#{user}/app/#{application}"

次に、これを初めて実行してください。

cap deploy:setup

次に、お気軽に:

cap deploy
于 2013-09-16T21:44:31.760 に答える