3

私はプロジェクトを継承し、開発面には満足していますが、管理者が貧弱で、Capistrano のデプロイが失敗しています。前の開発者によって以前にデプロイされたプロジェクトの場合:

cap deploy:check

正常に実行され、結果として

You appear to have all necessary dependencies installed

しかし、デプロイしようとすると、

...
ERROR: Repository not found.
...

私は持っている:

  • トリプルチェックした github リポジトリアドレス
  • ローカル マシンのレポから正常にプッシュおよびプルできることを確認しました
  • サーバーからSSH経由でgithubに正常に接続できることを確認しました
  • サーバー上でレポを正常に複製できることを確認しました
  • オンとオフの両方でエージェント転送を試しました
  • .git/config と config/deploy.rb でリポジトリ パスが一致することを確認しました

現時点では、エージェントがオフに転送するとき、サーバーから github への SSH は、以前の開発者の情報を返しています。この開発者は、まだ github リポジトリにアクセスできます。

Hi xxxxxx! You've successfully authenticated, but GitHub does not provide shell access.

エージェント転送がオンの場合、認証されたユーザーとして表示されます。

これを解決するためのヒントはありますか?これをトラブルシューティングする適切な URL に満足しています。

4

3 に答える 3

6

OK、消去法で解けました。「deploy.rb」の次の行でした

set :deploy_via, "remote_cache"

これをコメント アウトすると、正常にデプロイされます。コメントを外すと、同じエラーで再び壊れます。それは確かに問題のようです。

なぜこれが起こるのか私にはわかりません。でも、とりあえずこれで締めます。

于 2012-07-16T10:03:33.180 に答える
0

トラブルシューティングのヒント (特に GitHub リポジトリからデプロイする場合) については、GitHub ガイドのDeploying with Capistranoを確認することをお勧めします。このガイドは、展開キーの管理について確認する必要がある別のガイドにもリンクしています。

default_run_options[:pty]が見つからないか、正しくない可能性がありますconfig/deploy.rb。これにより、「認証は成功しましたが、シェルへのアクセスがありません」というエラーが発生する可能性があります。

スクリプトがまだ前の開発者の資格情報を使用している場合、capistrano スクリプトがサーバーにログインするシステム アカウント (例: set :user, "deployer") には、スクリプトが使用する前の開発者の秘密鍵が含まれ~/.sshている可能性があります。この場合は、ガイドに従って SSH エージェント転送を使用するようにスクリプトを再構成する必要があります。これにより、スクリプトはキーを使用して開始されます。

于 2012-07-12T05:50:58.953 に答える