我们对我们的npm repo使用Sinopia,并且证书(Home或当前目录中的.npmrc文件)是必需的。对于构建......直到今天,我已经避免在代码中坚持这些cred,并且通过传递一个env var,将其设置为.npmrc凭证文件的内容,使它们远离docker映像层。然后在生成过程:在Google Container Builder请求中为Docker版本设置env var与秘密YAML
RUN cat $NPMRC>.npmrc && npm install ; rm .npmrc
...都在同一个运行避免了层坚持用它的秘密.....
但我想设置容器使用建立请求YAML文件来设置环境。 var但失败。 build-request.yaml必须在代码中,所以我不能把它放在那里,我试图从桶中复制它后尝试添加--build-arg NPMRC="$(<.npmrc)"
....没有错误但auth失败
我试图创建一个使用像这样的咒语构建ARGS: [..., '--build-arg', 'NPMRC=\""$(< ./.npmrc)"\"', ....]
这表明在构建历史
... build --build-arg "NPMRC=\""$(cat ./.npmrc)"\"" -t
...这AFAICT是正确的,如果庆典得到壳层的保持想我所想它应该:
echo "NPMRC=\""$(cat ./.npmrc)"\"" -> NPMRC="_auth=...."
寻找解决方案,其他人可能已经发现
通常,在构建参数或环境变量上设置秘密不是一个好主意。那些坚持图像的元数据,可以很容易地查看。 –
我们在作品中有一个功能,可以帮助你很多。敬请关注! –
@AhmetAlpBalkan Docker检查 does not * not *揭示NPMRC env变量....是否有其他地方你认为我应该看? –
Rondo