0

以下はデバッグログです。

 [a4e2341c] Running /usr/bin/env [ ! -d ~/.rbenv/versions/2.1.0 ] on xxx.xxx.xxx
 [a4e2341c] Command: [ ! -d ~/.rbenv/versions/2.1.0 ]
 [a4e2341c] Finished in 6.761 seconds with exit status 1 (failed).

この失敗は何を意味しますか?ディレクトリが存在しない?しかし、それは存在します。

また、もう一つ、

Running ~/.rbenv/bin/rbenv exec bundle exec rake tmp:cache:clear on www.neonan.com
Command: cd /home/ben/staging/releases/20140305160352 && ( RBENV_ROOT=~/.rbenv RBENV_VERSION=2.1.0 ~/.rbenv/bin/rbenv exec bundle exec rake tmp:cache:clear )

fatal: Not a git repository (or any parent up to mount point /home)
Stopping at filesystem boundary (GIT_DISCOVERY_ACROSS_FILESYSTEM not set).

これは何を意味するのでしょうか?ヘルプ!

4

2 に答える 2

1

@akshah123情報をありがとう。Capistrano 3 を介して、ソリューションをパッケージ化された gem として配信する準備ができていないテスト領域にデプロイすると、この問題が発生しました。ファイルには次の.gemspecイディオムがありました

spec.files         = `git ls-files`.split($/)

それを

spec.files         = `if [ -d '.git' ]; then git ls-files; fi`.split($/)
于 2014-06-08T14:22:32.780 に答える
1

同様の問題がありました。使用している gem の 1 つでは、git コマンドを実行する必要があるようです。capistrano バージョン 3 では、".git" フォルダーは release フォルダーに保持されなくなりました。代わりに、「repo」というフォルダーを使用します。

必要がないように、おそらく長期的な解決策として gem を修正する必要があります。

基本的に、「repo」フォルダーをreleasesフォルダーの下の「.git」フォルダーとしてコピーするタスクを追加することで、問題を回避しました。

  namespace :deploy do

  desc 'Copies .git folder'
  task :copy_git do
    on roles(:app) do
        puts release_path
        within release_path do
              execute :cp, '-r', repo_path, '.git'
        end
    end
  end

  before 'bundler:install', 'deploy:copy_git'
end
于 2014-03-10T19:18:45.500 に答える