Cloud Buildの設定で手間取ったところ
Secret Managerで取得した値をDockerプロセスに渡せない
Cloud Buildのドキュメントにあるように
entrypointフィールドでbashを指定argsで$$接頭辞付きでシークレットの代入変数を指定
したにも関わらずデータが渡ってなかった。
steps:
- name: 'gcr.io/cloud-builders/docker'
entrypoint: bash
args: ['-c', 'docker build -t foo:test --build-arg FOO=$_FOO_VALUE']
secretEnv:
- '_FOO_VALUE'
availableSecrets:
secretManager:
- versionName: projects/$PROJECT_iD/secrets/foo-value/versions/latest
env: _FOO_VALUE
よくよく見たら 'bash' じゃなくて bash になってたのを修正したら直った。
steps:
- name: 'gcr.io/cloud-builders/docker'
entrypoint: 'bash'
args: ['-c', 'docker build -t foo:test --build-arg FOO=$_FOO_VALUE']
secretEnv:
- '_FOO_VALUE'
availableSecrets:
secretManager:
- versionName: projects/$PROJECT_iD/secrets/foo-value/versions/latest
env: _FOO_VALUE
そもそも entrypoint を変更して通常と異なる方法でビルドしないといけないのはイケてない気がする。