我们将Sinopia用于我们的 npm 存储库,并且凭证(Home 或当前目录中的 .npmrc 文件)是 nec。构建......直到今天,我当然避免在代码中保留这些凭据,并且还通过传递使用 .npmrc 凭据文件的内容设置的 env var 将它们排除在 docker 镜像层之外. 然后在构建期间:
RUN cat $NPMRC>.npmrc && npm install ; rm .npmrc
......一次运行避免了一层坚持其中的秘密......
但我正在尝试使用 YAML 文件设置容器构建请求来设置环境。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=...."
寻找其他人可能已经找到的解决方案