2017-03-22 11 views
0

現在、Google Container EngineにRuby on Railsサイトをホストしています。私は、第三者のCIから新しいGoogle Container Builderへの導入を移行中です。私を邪魔しているのは、私たちのGithub reposからの宝石を取り付けることだけです。 gsutilコマンドでロードするクラウドストレージに格納されているSSH鍵をすでに作成しています。私は鍵がそこにあり、正しいファイルアクセス権(単純なビジブルボックスlsビルドステップを使用して)を保証しましたが、Bundler/gitにこれを後で使用させる方法を失っています。私は、このanswerの環境変数(例:GIT_SSH_COMMAND)を使用していくつかのソリューションを試してみました。Google Container BuilderでSSHキーを使用する

これは私たちの現在のCIで、SSHキーを追加してssh-addを使用することで対応していますので、gitは後で見つけることができます。しかし、ベースのGoogle画像はssh-agentを使用していないようです。

これを回避するための提案(またはハック):

答えて

1

Googleチームと試行錯誤の助けを借りて、次の戦略が効果的だとわかりました。 ./devops/cloud_bundle_install.sh - name: ruby:2.2 args: ['bash', './devops/cloud_bundle_install.sh']

次されています:私のcloudbuild.yaml

は、私は次のビルドステップを追加

eval `ssh-agent` mkdir -p /root/.ssh ssh-keyscan github.com >> ~/.ssh/known_hosts mv /workspace/<KEY_DOWNLOADED_VIA_GSUTIL> ~/.ssh/id_rsa chmod 600 ~/.ssh/id_rsa ssh-add /workspace/.ssh/id_rsa bundle package --all --all-platforms

+0

ニース、あなたがこの作業を持って嬉しいです! –

1

私はあなたのために2つのオプションをレイアウトします。

1)クラウドストレージにsshキーがあるので、gsutil cloud-builderを使用してそこからビルドコンテキストにプッシュできます。 READMEには、GCSからビルド作業領域にファイルをコピーする例があります。

資格情報を含むGCSオブジェクトには、set up the Builder Service Account to have read accessが必要な場合があります。

作業領域で資格情報を取得したら、必要な作業を行うことができます。

2)connect your GitHub repository to a Cloud Source Repositoryの場合、BuilderサービスアカウントにCSRへのアクセス権があると仮定すると、そこからソースを直接引き出すことができます。 (同じプロジェクトの場合は、デフォルトで読み取りアクセス権があります)

完全公開:私はContainer Builderの後ろにあるエンジニアチームです。

関連する問題