在 Google Container Builder 请求 YAML 中为 docker 构建设置带有秘密的 env v



我们使用 Sinopia 作为我们的 npm 存储库,凭据(主页中的 .npmrc 文件或当前目录(是构建所必需的......当然,直到今天,我一直避免在代码中保留这些可信度,并且通过传递使用 .npmrc 凭据文件的内容设置的 env var 来将它们排除在 docker 映像层之外。然后在构建过程中:

RUN cat $NPMRC>.npmrc && npm install ; rm .npmrc

。所有在一个运行避免了带有秘密的层.....

但是我正在尝试使用 YAML 文件设置容器构建请求来设置 env. var,但失败了。build-request.yaml 必须在代码中,所以我不能把它放在那里,我试图添加--build-arg NPMRC="$(<.npmrc)"......从存储桶复制后....没有错误,但身份验证失败

我正在尝试使用这样的咒语创建构建参数: [..., '--build-arg', 'NPMRC=""$(< ./.npmrc)""', ....] 这在构建历史记录中显示为

... build --build-arg "NPMRC=""$(cat ./.npmrc)""" -t

。如果 bash 像我认为的那样抓住子壳,哪个 afaict 是正确的:

echo "NPMRC=""$(cat ./.npmrc)""" -> NPMRC="_auth=...."

寻找其他人可能已经找到的解决方案

我认为这个页面是正确的,所以我会说参考它回答我自己的问题是安全的(我猜我不会接受?

https://cloud.google.com/container-builder/docs/tutorials/using-encrypted-files

摘要:使用云密钥管理服务加密 .npmrc 并将加密文件提交到 src 主目录中(或复制到存储桶并添加 gsutil 构建步骤(.. 然后将解密添加为构建步骤: steps: - name: gcr.io/cloud-builders/gcloud args: - kms - decrypt - --ciphertext-file=npmrc.enc - --plaintext-file=.npmrc - --location=global - --keyring=[KEYRING-NAME] - --key=[KEY-NAME]

相关内容

  • 没有找到相关文章

最新更新