当使用自签名 CA 签名的 TLS 证书基于私有(private)存储库中的图像构建 Docker 图像时,如果该 CA 已经在 macOS Keychain 或 Windows Trusted Certificate Store 中,则一切正常——只要当您使用 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 上使用私有(private) CA 证书?
最佳答案
我的回答是基于这个:https://github.com/docker/buildx/blob/master/docs/guides/custom-registry-config.md
- 创建一个 buildkitd.toml 并配置您的私有(private) CA 证书:
[registry."your.dockerimagehost.example"]
ca=["/home/downloads/mycacert.pem"]
- 创建一个 docker 构建器
docker buildx create --use --config buildkitd.toml
- 那么你的构建命令应该可以工作了
关于docker - `docker buildx build` 使用私有(private) CA 签名的 TLS 证书引用 repo 时失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72894189/