2013-10-22 29 views
7

我正在使用最新版本的Capistrano w/my Rails 4應用程序。運行時cap dpeloy。我得到了很多輸出,包括這種故障:Capistrano V3在database.yml上失敗

DEBUG [04b6e226] Running /usr/bin/env [ -f /var/www/skateboxes/releases/20131022135522/config/database.yml ] on 162.243.33.179 
DEBUG [04b6e226] Command: [ -f /var/www/skateboxes/releases/20131022135522/config/database.yml ] 
DEBUG [04b6e226] Finished in 0.280 seconds with exit status 1 (failed). 

我該如何弄清楚這裏發生了什麼?

更新#1

我應該說,我gitignored config/database.yml(如由Capistrano的文檔建議)。然後添加以下到我的config/deploy.rb

set :linked_files, %w{config/database.yml} 

我然後在/var/www/skateboxes/shared/config/database.yml創建了我的VPS文件。

我不理解如何linked_files工作?

更新#2

事實證明,該文件實際上是被鏈接的shared/conf/database.ymlcurrent/config/database.yml所以現在我很困惑,爲什麼它說failed

更新#3

這裏是我部署的整個輸出

DEBUG Uploading /tmp/git-ssh.sh 0.0% 
INFO Uploading /tmp/git-ssh.sh 100.0% 
INFO [37fffef8] Running /usr/bin/env chmod +x /tmp/git-ssh.sh on 162.243.33.179 
DEBUG [37fffef8] Command: (RAILS_ENV=production /usr/bin/env chmod +x /tmp/git-ssh.sh) 
INFO [37fffef8] Finished in 0.282 seconds with exit status 0 (successful). 
DEBUG [d8542e52] Running /usr/bin/env git ls-remote [email protected]:kyledecot/skateboxes.git on 162.243.33.179 
DEBUG [d8542e52] Command: (RAILS_ENV=production GIT_ASKPASS=/bin/echo GIT_SSH=/tmp/git-ssh.sh /usr/bin/env git ls-remote [email protected]:kyledecot/skateboxes.git) 
DEBUG [d8542e52] Finished in 1.448 seconds with exit status 0 (successful). 
DEBUG [d8542e52] e0f96188b9567a84048a0e1238f219abc6351607 HEAD 
DEBUG [d8542e52] e0f96188b9567a84048a0e1238f219abc6351607 refs/heads/master 
DEBUG [d8542e52] Finished in 1.448 seconds with exit status 0 (successful). 
INFO [5a13328b] Running /usr/bin/env mkdir -pv /var/www/skateboxes/shared /var/www/skateboxes/releases on 162.243.33.179 
DEBUG [5a13328b] Command: (RAILS_ENV=production /usr/bin/env mkdir -pv /var/www/skateboxes/shared /var/www/skateboxes/releases) 
INFO [5a13328b] Finished in 0.719 seconds with exit status 0 (successful). 
INFO [293e065b] Running /usr/bin/env mkdir -pv /var/www/skateboxes/shared/config on 162.243.33.179 
DEBUG [293e065b] Command: (RAILS_ENV=production /usr/bin/env mkdir -pv /var/www/skateboxes/shared/config) 
INFO [293e065b] Finished in 0.780 seconds with exit status 0 (successful). 
DEBUG [4eb81576] Running /usr/bin/env [ -f /var/www/skateboxes/shared/config/database.yml ] on 162.243.33.179 
DEBUG [4eb81576] Command: [ -f /var/www/skateboxes/shared/config/database.yml ] 
DEBUG [4eb81576] Finished in 0.744 seconds with exit status 0 (successful). 
DEBUG [89a9e1fa] Running /usr/bin/env [ -f /var/www/skateboxes/repo/HEAD ] on 162.243.33.179 
DEBUG [89a9e1fa] Command: [ -f /var/www/skateboxes/repo/HEAD ] 
DEBUG [89a9e1fa] Finished in 0.734 seconds with exit status 0 (successful). 
INFO The repository mirror is at /var/www/skateboxes/repo 
DEBUG [3cc4d694] Running /usr/bin/env if test ! -d /var/www/skateboxes/repo; then echo "Directory does not exist '/var/www/skateboxes/repo'" 1>&2; false; fi on 162.243.33.179 
DEBUG [3cc4d694] Command: if test ! -d /var/www/skateboxes/repo; then echo "Directory does not exist '/var/www/skateboxes/repo'" 1>&2; false; fi 
DEBUG [3cc4d694] Finished in 0.735 seconds with exit status 0 (successful). 
INFO [1cb24a84] Running /usr/bin/env git remote update on 162.243.33.179 
DEBUG [1cb24a84] Command: cd /var/www/skateboxes/repo && (RAILS_ENV=production /usr/bin/env git remote update) 
DEBUG [1cb24a84] Fetching origin 
DEBUG [1cb24a84] remote: Counting objects: 5, done. 
remote: Compressing objects: 100% (1/1), done. 
DEBUG [1cb24a84] remote: Total 3 (delta 2), reused 3 (delta 2) 
DEBUG [1cb24a84] Unpacking objects: 33% (1/3) 
DEBUG [1cb24a84] Unpacking objects: 66% (2/3) 
Unpacking objects: 100% (3/3), done.jects: 100% (3/3) 
DEBUG [1cb24a84] From github.com:kyledecot/skateboxes 
DEBUG [1cb24a84]  de7f4a1..e0f9618 master  -> master 
INFO [1cb24a84] Finished in 0.817 seconds with exit status 0 (successful). 
DEBUG [edd6c793] Running /usr/bin/env if test ! -d /var/www/skateboxes/repo; then echo "Directory does not exist '/var/www/skateboxes/repo'" 1>&2; false; fi on 162.243.33.179 
DEBUG [edd6c793] Command: if test ! -d /var/www/skateboxes/repo; then echo "Directory does not exist '/var/www/skateboxes/repo'" 1>&2; false; fi 
DEBUG [edd6c793] Finished in 0.732 seconds with exit status 0 (successful). 
INFO [009b81fe] Running /usr/bin/env mkdir -p /var/www/skateboxes/releases/20131022145520 on 162.243.33.179 
DEBUG [009b81fe] Command: cd /var/www/skateboxes/repo && (RAILS_ENV=production GIT_ASKPASS=/bin/echo GIT_SSH=/tmp/git-ssh.sh /usr/bin/env mkdir -p /var/www/skateboxes/releases/20131022145520) 
INFO [009b81fe] Finished in 0.317 seconds with exit status 0 (successful). 
INFO [e9554374] Running /usr/bin/env git archive master | tar -x -C /var/www/skateboxes/releases/20131022145520 on 162.243.33.179 
DEBUG [e9554374] Command: cd /var/www/skateboxes/repo && (RAILS_ENV=production GIT_ASKPASS=/bin/echo GIT_SSH=/tmp/git-ssh.sh /usr/bin/env git archive master | tar -x -C /var/www/skateboxes/releases/20131022145520) 
INFO [e9554374] Finished in 0.356 seconds with exit status 0 (successful). 
INFO [165a7c40] Running /usr/bin/env mkdir -pv /var/www/skateboxes/releases/20131022145520/config on 162.243.33.179 
DEBUG [165a7c40] Command: (RAILS_ENV=production /usr/bin/env mkdir -pv /var/www/skateboxes/releases/20131022145520/config) 
INFO [165a7c40] Finished in 1.174 seconds with exit status 0 (successful). 
DEBUG [c2f7de66] Running /usr/bin/env [ -L /var/www/skateboxes/releases/20131022145520/config/database.yml ] on 162.243.33.179 
DEBUG [c2f7de66] Command: [ -L /var/www/skateboxes/releases/20131022145520/config/database.yml ] 
DEBUG [c2f7de66] Finished in 0.572 seconds with exit status 1 (failed). 
DEBUG [09de2f2c] Running /usr/bin/env [ -f /var/www/skateboxes/releases/20131022145520/config/database.yml ] on 162.243.33.179 
DEBUG [09de2f2c] Command: [ -f /var/www/skateboxes/releases/20131022145520/config/database.yml ] 
DEBUG [09de2f2c] Finished in 0.304 seconds with exit status 1 (failed). 
INFO [05570e6e] Running /usr/bin/env ln -s /var/www/skateboxes/shared/config/database.yml /var/www/skateboxes/releases/20131022145520/config/database.yml on 162.243.33.179 
DEBUG [05570e6e] Command: (RAILS_ENV=production /usr/bin/env ln -s /var/www/skateboxes/shared/config/database.yml /var/www/skateboxes/releases/20131022145520/config/database.yml) 
INFO [05570e6e] Finished in 0.541 seconds with exit status 0 (successful). 
INFO [8499b753] Running /usr/bin/env rm -rf /var/www/skateboxes/current on 162.243.33.179 
DEBUG [8499b753] Command: (RAILS_ENV=production /usr/bin/env rm -rf /var/www/skateboxes/current) 
INFO [8499b753] Finished in 0.762 seconds with exit status 0 (successful). 
INFO [bddc6793] Running /usr/bin/env ln -s /var/www/skateboxes/releases/20131022145520 /var/www/skateboxes/current on 162.243.33.179 
DEBUG [bddc6793] Command: (RAILS_ENV=production /usr/bin/env ln -s /var/www/skateboxes/releases/20131022145520 /var/www/skateboxes/current) 
INFO [bddc6793] Finished in 0.289 seconds with exit status 0 (successful). 
DEBUG [38a6b176] Running /usr/bin/env ls -x /var/www/skateboxes/releases on 162.243.33.179 
DEBUG [38a6b176] Command: (RAILS_ENV=production /usr/bin/env ls -x /var/www/skateboxes/releases) 
DEBUG [38a6b176] Finished in 0.741 seconds with exit status 0 (successful). 
DEBUG [38a6b176] 20131022133912 20131022133939 20131022134435 20131022135522 20131022145350 
DEBUG [38a6b176] 20131022145520 
DEBUG [38a6b176] Finished in 0.741 seconds with exit status 0 (successful). 
INFO Keeping 5 of 6 deployed releases on 162.243.33.179 
INFO [7da6047f] Running /usr/bin/env rm -rf /var/www/skateboxes/releases/20131022133912 on 162.243.33.179 
DEBUG [7da6047f] Command: (RAILS_ENV=production /usr/bin/env rm -rf /var/www/skateboxes/releases/20131022133912) 
INFO [7da6047f] Finished in 0.530 seconds with exit status 0 (successful). 
DEBUG [7cdd5da9] Running /usr/bin/env if test ! -d /var/www/skateboxes/releases; then echo "Directory does not exist '/var/www/skateboxes/releases'" 1>&2; false; fi on 162.243.33.179 
DEBUG [7cdd5da9] Command: if test ! -d /var/www/skateboxes/releases; then echo "Directory does not exist '/var/www/skateboxes/releases'" 1>&2; false; fi 
DEBUG [7cdd5da9] Finished in 0.727 seconds with exit status 0 (successful). 
INFO [906548e8] Running /usr/bin/env echo "Branch master deployed as release 20131022145520 by kyledecot; " >> /var/www/skateboxes/revisions.log on 162.243.33.179 
DEBUG [906548e8] Command: echo "Branch master deployed as release 20131022145520 by kyledecot; " >> /var/www/skateboxes/revisions.log 
INFO [906548e8] Finished in 0.279 seconds with exit status 0 (successful). 
+0

是你的git倉庫的這個文件的一部分嗎?確定你沒有.gitignore它? – phoet

+0

它確實被忽略。我更新了我的問題。 –

回答

4

這不是故障,請參閱https://github.com/leehambley/sshkit/pull/33

它說failed因爲那是文件,因此測試命令([又名man (1) test)已經退出,狀態1

有問題的命令出來的this code,轉載如下:

desc 'Symlink linked files' 
task :linked_files do 
    next unless any? :linked_files 
    on roles :app do 
    execute :mkdir, '-pv', linked_file_dirs(release_path) 

    fetch(:linked_files).each do |file| 
     target = release_path.join(file) 
     source = shared_path.join(file) 
     unless test "[ -L #{target} ]" 
     if test "[ -f #{target} ]" 
      execute :rm, target 
     end 
     execute :ln, '-s', source, target 
     end 
    end 
    end 
end 
desc 'Check files to be linked exist in shared' 
task :linked_files do 
    next unless any? :linked_files 
    on roles :app do |host| 
    linked_files(shared_path).each do |file| 
     unless test "[ -f #{file} ]" 
     error t(:linked_file_does_not_exist, file: file, host: host) 
     exit 1 
     end 
    end 
    end 
end 

任務名字說明了一切,真的,如果你的文件在:linked_files變量中列出,它必須存在於shared_path,否則它會導致Capistrano在文件不存在時中止。

您還沒有說過這是否會導致您的部署失敗,並且由於您發佈的日誌很少,除了正常行爲外沒有任何其他信息,所以沒人能猜到。

你似乎從Symlink linked files任務,這是應該failconfig/database.yml,如果它不存在,發佈日誌,它有failed找到它,所以它並沒有被刪除。

+0

好的,我已經更新了我的問題w /更多的細節。也許我對於實際應該發生的事情感到困惑。 –

+0

查看我的編輯(不確定是否通知您有關編輯) –

+0

這不會導致部署失敗。我已經更新了我的帖子w /完整的輸出。 –