docker buildx 推送私仓 x509问题
Build 混合编译
1、buildx 简介
一个基于buildkit(第二代打包工具)
的一个集成工具。简单的说他可以打包出多个平台的容器了。这个部分一百度一大把。那么我这边就接受一下百度不到。
2、需求描述
此处主要是为了解决:开发平台是arm,部署环境是amd64。或者是部署环境既有 arm 又有 amd64的这种情况。根据此教程我们可以做到一次push
多平台直接pull
。
3、前置条件
- 安装新版本的docker(已经自带buildx,如果是老版本自行安装)
- 安装新版本的harbor(大概3-5年前的版本是不支持一个版本号多个平台的)
- docker 已经能够正常的push 并且 以下命令可以正常返回【很重要】
curl -vvv https://私有镜像
:和访问baidu的结果一直就可以- 主要就是为了验证证书有没有全局被认证。
- mac 的话把cert放钥匙串,然后信任
- centos 信任 跟证书 ubuntu的话了没有尝试,自行百度
4、打包
# 1、创建配置文件toml
vim /etc/buildkitd/buildkitd.toml
debug = true
insecure-entitlements = [ "network.host", "security.insecure" ]
[registry."www.harbor.com"]
mirrors = [
"xxxxx.mirror.aliyuncs.com" # 镜像加速
]
insecure = true
ca=["/etc/buildkit/ca.crt"] # 根证书
[[registry."www.harbor.com".keypair]] # 这个就不解释了
key="/etc/buildkit/www.harbor.com.key"
cert="/etc/buildkit/www.harbor.com.cert"
# 2、创建 builder
docker buildx create --config /etc/buildkit/buildkitd.toml --use --name kingbuilder --driver docker-container --driver-opt image=moby/buildkit:master
# 3、打包并推送命令
docker buildx build --platform linux/amd64,linux/arm64 -t www.harbor.com/king/taxi-bus-server:0.2.5 --push .