如何停止gcloud docker – 覆盖长寿命凭据?
我们正在使用Google Container Registry来存储我们的Docker镜像。
为了授权我们的构build实例,我们在.docker/config.json
放置了长期访问令牌 ,如文档中所述。
这工作完全正常,直到某人(即某些Makefile)使用gcloud docker -- push ...
推送到registry(而不是例如docker push ...
)。 gcloud
将用一段时间后过期的短期凭证取代现有的长期凭证 。 因此,后续的构build可能会失败,具体时间取决于具体时间。
我的问题 :我如何防止gcloud docker ...
弄乱我提供的凭据?
我试过chattr +i .docker/config.json
,但这只是使gcloud
抱怨。
从https://cloud.google.com/sdk/gcloud/reference/docker :
gcloud docker命令组包装docker命令,以便gcloud可以将适当的新的身份validation令牌注入到与dockerregistry交互的请求中。
gcloud docker
所做的唯一的事情是更改这些凭据,然后调用gcloud docker
CLI。 如果你不希望它改变凭据,没有理由不直接调用docker
。
一种解决方法可能是使用替代的configuration文件位置作为您的长期凭据; 按照https://docs.docker.com/engine/reference/commandline/cli/ :
Options: --config string Location of client config files (default "/root/.docker")