工作中需要再CI/CD机器上构建arm64的镜像,但CI/CD机器又是X86的机器,记录一下如何实现,基于qemu
下载qemu镜像
1 2 3
| # 分别用于向内核的binfmt_misc注册可执行文件,以及用于arm64指令翻译为x86指令 $ docker pull multiarch/qemu-user-static:register $ docker pull multiarch/qemu-user-static:x86_64-aarch64
|
运行register镜像
1 2
| # 向内核的binfmt_misc进行注册: $ docker run --rm --privileged multiarch/qemu-user-static:register --reset
|
编写Dockerfile
1 2 3 4 5 6 7
| FROM multiarch/qemu-user-static:x86_64-aarch64 as qemu
FROM centos:centos7
COPY --from=qemu /usr/bin/qemu-aarch64-static /usr/bin
# 你的构建命令。。。。。。
|
构建
1 2 3 4
| # 执行构建 $ docker build -t xxx-imgage:0.0.1-arm64 . # 然后,你可以检查一下该镜像的架构: $ docker inspect xxx-imgage:0.0.1-arm64
|