一 环境需求
1.1 需要的环境
选择Ubuntu 和 Fedora 是因为它们的安装构建环境比较方便,不会出现内核版本低导致问题
1.2 BuildX的启用
启用 Buildx 方式(两种)
第一种
临时激活
把环境变量添加在执行构建命令的前面
第二种
配置文件激活
vim /etc/docker/daemon.json { "experimental": true }
二 qemu-user-static
2.1 qemu-user-static的安装
qemu-user-stati依赖于binfmt-support,所以这两个都需要安装
sudo apt install -y qemu-user-static binfmt-support
2.2 qemu的使用
docker run --rm --privileged multiarch/qemu-user-static --reset -p yes
2.3 Buildx构建容器的创建
docker buildx create --name mybuilder docker buildx use mybuilder docker buildx inspect --bootstrap
通过 docker ps 查看启动构建容器
root@hz:~# docker ps root@hz:~# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES ba6651e07ab0 moby/buildkit:buildx-stable-1 "buildkitd" 5 weeks ago Up 50 minutes buildx_buildkit_mybuilder0
2.4 调整Dockerfile接收平台相关参数
由buildx自动传递确保构建容器能拉取到正确平台的基础镜像
2FROM --platform=$TARGETPLATFORM 基础镜像名:TAG .... 其他内容
2.5 构建X86_64与ARM64镜像直接推送到指定仓库
构建
docker buildx build -t 镜像仓库地址/镜像名:TAG --platform linux/amd64,linux/arm64 . --push
导出
docker buildx build -t 镜像仓库地址/镜像名:TAG --platform linux/arm64 . --load
那个点的意思是构建上下文位置为当前目录
原创文章,作者:网友投稿,如若转载,请注明出处:https://www.cloudads.cn/archives/4150.html