Fork me on GitHub

版权声明 本站原创文章 由 萌叔 发表
转载请注明 萌叔 | https://vearne.cc

警告:本文仅用于萌叔自己总结之用,对其它人而言可能毫无营养,没有阅读价值。

1.前言

使用docker buildx 可以在一次build中生成支持多个平台的image。但在推动给私有仓库时,报"x509: certificate signed by unknown authority"。经过确认是,私有仓库使用的证书是自签名证书,导致SSL握手失败导致的。

2. 解决

docker buildx使用的builder配置方式与docker配置方式不同,需要在创建builder时,即指定

1) 创建配置文件

cat <<EOF > ./config.toml
debug = true
# root is where all buildkit state is stored.
root = "/var/lib/buildkit"
# insecure-entitlements allows insecure entitlements, disabled by default.
insecure-entitlements = [ "network.host", "security.insecure"]

[registry."my-registry.abc.local"]
  http = true
  insecure = true

EOF

2) 创建builder

指定以./config.toml作为mybuilder的配置文件

docker buildx create --use --name=mybuilder —-config=./config.toml --bootstrap

--bootstrap 表示启动builder

--use 表示将mybuilder作为默认builder

3) 创建builder

docker buildx inspect

4) 可以正常使用

docker buildx build --platform linux/amd64,linux/arm64 --push -t ${IMAGE_NAME} .

参考资料

1.docker buildx
2.multi arch image: error while pushing "http: server gave HTTP response to HTTPS client"
3.在M1Mac上构建x86 Docker镜像


微信公众号

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注