如何将缓存推送到不安全的注册表?我已经将它添加到了docker config中,并且可以通过docker login
成功登录。
这是我的docker命令:
docker buildx build --cache-to=type=registry,ref=my-insecure-repo/lib/test:0730 \
--output=type=image,push=true \
-t test:0730 -f ut.dockerfile .
并收到错误消息:
#12 ERROR: server message: insufficient_scope: authorization failed
------
> exporting to image:
------
failed to solve: rpc error: code = Unknown desc = server message: insufficient_scope: authorization failed
我尝试添加--output=type=image,push=true,registry.insecure=true
,但存在相同的错误。也尝试添加--allow security.insecure
,但得到:failed to solve: rpc error: code = Unknown desc = granting entitlement security.insecure is not allowed by build daemon configuration
Docker版本:Docker 19.03.8版,构建afacb8b
谢谢大家。
答案 0 :(得分:1)
current advice for buildkit将在docker引擎中为您的不安全注册表配置http前缀:
$ cat /etc/docker/daemon.json
{
"insecure-registries" : [ "http://my-insecure-repo" ]
}
请确保在调整此文件(systemctl reload docker
)后重新加载docker引擎。
但是buildx直接调用buildkit,因此上述方法可能不适用于此问题。相反,您需要将http: true
传递给config file。有关更多详细信息,请参见this comment。
答案 1 :(得分:0)
也许这些链接会有所帮助:
据我了解,应该可以在构建器创建时为它们提供--buildkitd-flags
标志(docker buildx create --help
)