1

Capistrano を使用してデプロイする PHP Web アプリケーションがあります。私の会社は、ローカルの git リポジトリの使用から Github へのコードの保存に移行しました。

私たちの手に負えないいくつかの問題のため、SSH を使用して Github リポジトリを複製することができません。代わりに、https を使用する必要があります。Github アカウントに読み取り専用ユーザーを設定して、netrc ファイルを使用して HTTPS 経由で Github からユーザー名とパスワードの入力を求めることなくプルできるようにしました。

これはコマンド ラインでは期待どおりに機能しますが、Capistrano スクリプトからは、ユーザー名とパスワードの入力を求められます。Capistrano スクリプトの deploy.rb は次のとおりです。

require 'capistrano/php'

set :application, "app"
set :repository,  "https://github.com/mycompany/app.git"
set :deploy_to, "/var/www/html/app"

set :scm, :git
set :deploy_via, :remote_cache
set :copy_exclude, %w(.git)
set :git_enable_submodules, true
default_run_options[:pty] = true
set :use_sudo, true

role :web, "webbox01"
role :app, "webbox01"

繰り返しますgit clone https://github.com/mycompany/app.gitが、コマンド ラインから直接実行すると問題なく動作しますが、deploy.rb では失敗します。このように URL にユーザーのユーザー名とパスワードを手動で入力するとhttps://rouser:password@github.com/mycompany/app.git、Capistrano スクリプトは正常に動作します。

ファイルにユーザー名とパスワードをハードコードする必要がなければ、それを避けることができればしたくありませんが、そうしなければならない場合は、そうしなければなりません。

あなたが提供できるアドバイスを事前に感謝します。

4

1 に答える 1

1

以前に capistrano でデプロイしたサーバーに移動し、共有 capistrano dir にあるキャッシュされた git 構成ファイルを編集します。

共有/キャッシュされたコピー/.git/config

元の部分に残っているユーザー名を削除して、URL が次のようになるようにします: https://github.com/mycompany/app.git

于 2012-06-09T14:48:41.927 に答える