Google cloud platform 在Google容器生成器请求YAML中为docker build设置带密码的环境变量

Google cloud platform 在Google容器生成器请求YAML中为docker build设置带密码的环境变量,google-cloud-platform,google-kubernetes-engine,google-container-registry,google-container-builder,Google Cloud Platform,Google Kubernetes Engine,Google Container Registry,Google Container Builder,我们用于我们的npm回购,凭证(.npmrc文件在主目录或当前目录中)为nec。为了建造。。。。当然,直到今天,我还避免在代码中保留这些cred,并且通过传递一个使用.npmrc凭证文件内容设置的env var,将它们从docker映像层中排除。然后在构建过程中: 运行cat$NPMRC>.NPMRC&&npm安装;rm.npmrc 。。。在一次运行中,避免了一个带有秘密的层 但是我正在尝试使用YAML文件设置容器构建请求来设置env。但是失败了。build-request.yaml必须在代

我们用于我们的npm回购,凭证(.npmrc文件在主目录或当前目录中)为nec。为了建造。。。。当然,直到今天,我还避免在代码中保留这些cred,并且通过传递一个使用.npmrc凭证文件内容设置的env var,将它们从docker映像层中排除。然后在构建过程中:


运行cat$NPMRC>.NPMRC&&npm安装;rm.npmrc

。。。在一次运行中,避免了一个带有秘密的层


但是我正在尝试使用YAML文件设置容器构建请求来设置env。但是失败了。build-request.yaml必须在代码中,所以我不能将其放在那里,我尝试添加
--build arg NPMRC=“$”(我认为这个页面是正确的,所以我想回答我自己关于它的问题是安全的(我想我不会接受):

摘要: 使用云密钥管理服务加密.npmrc并在src home目录中提交加密文件(或复制到bucket并添加gsutil构建步骤)…然后将解密添加为构建步骤:

步骤:
-名称:gcr.io/cloud-builders/gcloud
args:
-kms
-解密
---密文文件=npmrc.enc
---纯文本文件=.npmrc
---位置=全局
---keyring=[keyring-NAME]
---key=[key-NAME]

一般来说,在构建参数或环境变量上设置秘密不是一个好主意。这些秘密保存在图像的元数据上,并且可以很容易地查看。我们的工作中有一个功能应该会对您有很大帮助。请继续关注!@Ahmetalpbarkan Docker inspect不会透露NPMRC env变量…有什么地方是els吗你认为我应该看看吗?看和
docker build--secret id=mysecret,src=/secret/file
谢谢@VonC….我会看看这对meThis是否有效。这并没有解决问题的最后一步:将这个值以一种不会在层中持久化的方式放入构建容器中