1

如何将缓存推送到不安全的注册表?我已经将它添加到我的 docker 配置中,并且可以通过docker login. 这是我的码头工人命令:

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

谢谢大家。

4

2 回答 2

1

buildkit当前的建议是在 docker引擎中配置不安全的注册表,并以 http 方案为前缀:

$ cat /etc/docker/daemon.json
{
  "insecure-registries" : [ "http://my-insecure-repo" ]
}

确保在调整此文件 ( systemctl reload docker) 后重新加载 docker 引擎。

但是 buildx 直接调用 buildkit 所以上面可能不适用于这个问题。相反,您需要使用http: true. 有关更多详细信息,请参阅此评论

于 2020-08-14T10:07:15.440 回答
0

也许这些链接很有帮助:

据我了解,应该可以在 builder-creation 中为它们提供--buildkitd-flags标志 ( docker buildx create --help)

于 2020-08-13T09:48:26.280 回答