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 スクリプトは正常に動作します。
ファイルにユーザー名とパスワードをハードコードする必要がなければ、それを避けることができればしたくありませんが、そうしなければならない場合は、そうしなければなりません。
あなたが提供できるアドバイスを事前に感謝します。