Gitを使用したRubyデプロイメント用のAWSElasticBeanstalkのセットアップに関する最近のチュートリアルに従って、CIサーバーからElasticBeanstalk環境をセットアップしました。ただし、アプリケーションを起動できませんでした。ログを調べてbundle install
、エラーメッセージが表示されて失敗していることを確認しました。
git@github.com:example/private-repository.gitの取得ホストキーの検証に失敗しました。致命的:リモートエンドが予期せずハングアップしました[31mGitエラー:
git clone 'git@github.com:example/private-repository.git' "/var/app/ondeck/vendor/cache/ruby/1.9.1/cache/bundler/git/private-repository-e4bbe6c2b13bb62664e39e345c1b01d80017934c" --bare --no-hardlinks
ディレクトリ/ var / app/ondeckのコマンドが失敗しました。[0m
Gemfile
私のRailsアプリケーションには、Github上のいくつかの所有するプライベートリポジトリでホストされているgemifiedプラグインへの参照が含まれています。何かのようなもの
gem'somegemname'、:git =>'git@github.com:example / private-repository.git'
Capistranoの展開で同様の問題に直面しましたが、を設定することで解決しましたssh_options[:forward_agent] = true
。
.config
AWS Elastic Beanstalk Rubyコンテナは、の下に配置されたカスタムファイルを介したカスタム構成をサポートします.ebextensions
。この場合、SSH転送エージェントを設定すると役立ちますか?Elastic Beanstalk環境の起動中にプライベートGithubリポジトリに到達するための他の選択肢はありますか?
更新1:abundle install
が開始されたユーザーを確認しました。スクリプト/opt/elasticbeanstalk/hooks/appdeploy/pre/10_bundle_install.sh
がユーザーbundle install
として開始することがわかりました。root
下にSSHキーを作成してみて、その/root/.ssh
pub-keyをそのリポジトリのGithubDeployキーに追加しました。今のところ運がない。次に、SSH pub-keyをGithubのユーザーアカウントに追加して、Githubアカウントからアクセスできるすべてのプライベートリポジトリに適用できるようにします。