【问题标题】:`docker buildx build` failing when referring repo with TLS certificate signed with private CA使用私有 CA 签名的 TLS 证书引用 repo 时,`docker buildx build` 失败
【发布时间】:2022-08-09 21:10:28
【问题描述】:

在使用自签名 CA 签名的 TLS 证书基于私有存储库中的映像构建 Docker 映像时,如果该 CA 已经在 macOS 钥匙串或 Windows 受信任的证书存储中,则一切正常 - 只要您构建使用docker build

但是,当使用 docker buildx build 时,找不到 CA,并且构建失败并出现证书错误。

考虑这个Dockerfile

FROM dockerhub.my.private.mirror.org/oraclelinux:8.6

使用docker build 可以正常工作:

% docker build .
...
 => CACHED [1/1] FROM dockerhub.my.private.mirror.org/oraclelinux:8.6
...

但是,使用 docker buildx build 会失败:

% docker buildx build --load .
...
 => ERROR [internal] load metadata for dockerhub.my.private.mirror.org/oraclelinux:8.6
------
 > [internal] load metadata for dockerhub.my.private.mirror.org/oraclelinux:8.6:
------
Dockerfile:1
--------------------
   1 | >>> FROM dockerhub.my.private.mirror.org/oraclelinux:8.6
   2 |     
--------------------
error: failed to solve: dockerhub.my.private.mirror.org/oraclelinux:8.6: ↩
  failed to do request: Head \"https://dockerhub.my.private.mirror.org/v2/oraclelinux/manifests/8.6\": ↩
  x509: certificate signed by unknown authority

有谁知道如何配置docker buildx 以在 macOS、Windows 和 Linux 上使用私有 CA 证书?

    标签: docker ssl buildx


    【解决方案1】:

    我的回答是基于此:https://github.com/docker/buildx/blob/master/docs/guides/custom-registry-config.md

    1. 创建一个 buildkitd.toml 并配置您的私有 CA 证书:
      [registry."your.dockerimagehost.example"]
        ca=["/home/downloads/mycacert.pem"]
      
      1. 创建一个 docker builder
      docker buildx create --use --config buildkitd.toml
      
      1. 那么您的构建命令应该可以工作了

    【讨论】:

      猜你喜欢
      • 2013-08-30
      • 2018-01-03
      • 2016-09-01
      • 1970-01-01
      • 2018-12-23
      • 1970-01-01
      • 1970-01-01
      • 2023-04-03
      • 1970-01-01
      相关资源
      最近更新 更多