CloudBuild内でビルドするコンテナ内のpoetryからプライベートリポジトリを参照する方法

注意事項 その後の検証で --ssh オプションでも同等に動作することの検証が取れたのでこちらを参照してください。 はじめに 長いタイトルになってしまいましたが、表題のとおりです笑 cloudbuild内でプライベートリポジトリを参照する方法も、docker build内でプライベートリポジトリを参照する方法もどちらも色々と記事があったのですが、併せると中々なかったのでメモしておきます やったこと 結論 ざっくりいうと、以下のようにすれば動きます。 ポイントは private repositoryの秘密鍵はSecretManager経由で渡す docker buildはBUILDKITを有効化した上で、秘密鍵を–secretオプションでマウントする Dockerfile内では--mountオプションで秘密鍵を利用する 1steps: 2- name: 'gcr.io/cloud-builders/git' 3 secretEnv: ['SSH_KEY'] 4 entrypoint: 'bash' 5 args: 6 - -c 7 - | 8 echo "$$SSH_KEY" >> /root/.ssh/id_rsa 9 chmod 400 /root/.ssh/id_rsa 10 ssh-keyscan -t rsa github.com > /root/.ssh/known_hosts 11 volumes: 12 - name: 'ssh' 13 path: /root/.ssh 14 15- name: gcr.io/cloud-builders/docker:latest 16 dir: k8s_pipelines 17 entrypoint: bash 18 args: 19 - -c 20 - |- 21 set -eux 22 docker build --secret id=ssh,src=/root/....

2022-06-26