在Google容器生成器请求YAML

时间:2017-07-19 01:12:26

标签: google-cloud-platform google-kubernetes-engine google-container-registry google-container-builder

我们使用Sinopia作为我们的npm repo,凭证(Home或当前目录中的.npmrc文件)是nec。对于构建....直到今天,我已经避免在代码中保留这些信用,当然,还通过传递使用.npmrc凭证文件的内容设置的env var将它们保留在docker图像层之外。然后在构建期间:

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

...所有在一个RUN中避免一层持有秘密的层......

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

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

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

...如果bash像我认为的那样得到子shell,那么afaict是正确的:

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

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

1 个答案:

答案 0 :(得分:0)

我认为这个页面是正确的,所以我说可以安全地回答我自己提出的问题(我猜不会接受,我猜?):

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

<强>要点: 使用Cloud Key Management Service加密.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]