gpt4 book ai didi

docker - 如何使用 Google Secrets Manager 在 Google Cloud Build 中创建 docker ARG?

转载 作者:行者123 更新时间:2023-12-02 16:22:01 26 4
gpt4 key购买 nike

我正在 GCB 上进行构建,我需要在其中安装私有(private)依赖项,因此我正在使用 Google Secrets Manager。我的 cloudbuild.yaml 看起来像这样:

steps:
- name: gcr.io/cloud-builders/gcloud
entrypoint: 'bash'
args: [ '-c', "gcloud secrets versions access latest --secret=PERSONAL_ACCESS_TOKEN_GITHUB --format='get(payload.data)' | tr '_-' '/+' | base64 -d > decrypted-pat.txt" ]
- name: 'gcr.io/cloud-builders/docker'
args:
- build
- '--build-arg'
- PERSONAL_ACCESS_TOKEN_GITHUB=$(cat decrypted-pat.txt)
- '-t'
- 'gcr.io/$PROJECT_ID/$REPO_NAME:$TAG_NAME'
- .
images: [ gcr.io/$PROJECT_ID/$REPO_NAME:$TAG_NAME ]

但是,$(cat decrypted-pat.txt) 没有得到评估。插入:RUN echo https://${PERSONAL_ACCESS_TOKEN_GITHUB}@github.com 到我的 dockerfile 中只是回显文字:当然,https://$(cat decrypted-pat.txt)@github.com 不是我正在寻找的命令(是的,如果我真的成功回显,我会旋转 token )。

the gcb / secrets docs 中有一条注释

To use the secret in an environment variable, you need to prefix the variable name with an underscore "_" and escape the value using '('. For example: _VARIABLE_NAME=$(cat password.txt) && echo -n )_VARIABLE_NAME.

但这对我来说在构建参数中的使用意义不大。

我怎样才能将这个 secret 的实际值作为构建参数放入容器中?

最佳答案

自 2021 年 2 月 10 日起,您可以使用 availableSecrets 字段直接从 Cloud Build 访问 Secret Manager secret :

steps:
- name: 'gcr.io/cloud-builders/docker'
entrypoint: 'bash'
args: ['-c', 'docker login --username=$$USERNAME --password=$$PASSWORD']
secretEnv: ['USERNAME', 'PASSWORD']
availableSecrets:
secretManager:
- versionName: projects/PROJECT_ID/secrets/DOCKER_PASSWORD_SECRET_NAME/versions/DOCKER_PASSWORD_SECRET_VERSION
env: 'PASSWORD'
- versionName: projects/PROJECT_ID/secrets/DOCKER_USERNAME_SECRET_NAME/versions/DOCKER_USERNAME_SECRET_VERSION
env: 'USERNAME'

Documentation

关于docker - 如何使用 Google Secrets Manager 在 Google Cloud Build 中创建 docker ARG?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65302542/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com