💎一站式轻松地调用各大LLM模型接口,支持GPT4、智谱、星火、月之暗面及文生图 广告
[TOC] 本文介绍如何在x86主机上构建arm镜像 ### **基于qemu** 下载arm64的镜像(注意,首先要删除同名的镜像) ``` $ docker pull --platform linux/arm64 tomcat:9.0.60-jdk8-openjdk ``` 确认一下下载的镜像的架构为arm64 ``` $ docker inspect tomcat:9.0.60-jdk8-openjdk ``` 下载qemu镜像(分别用于向内核的binfmt_misc注册可执行文件,以及用于arm64指令翻译为x86指令) ``` $ docker pull multiarch/qemu-user-static:register $ docker pull multiarch/qemu-user-static:x86_64-aarch64 ``` 运行register镜像,向内核的binfmt_misc进行注册: ``` $ docker run --rm --privileged multiarch/qemu-user-static:register --reset ``` 接着,我们创建一个Dockerfile,内容如下: ``` FROM multiarch/qemu-user-static:x86_64-aarch64 as qemu FROM tomcat:9.0.60-jdk8-openjdk COPY --from=qemu /usr/bin/qemu-aarch64-static /usr/bin # 以下为对镜像的修改 RUN apt-get install ansible ``` 然后,执行如下命令进行构建 ``` $ docker build -t ccse-backend-tomcat:9.0.60-p2-arm64 . ``` 然后,你可以检查一下该镜像的架构: ``` $ docker inspect ccse-backend-tomcat:9.0.60-p2-arm64 ``` 以及进入到镜像里面查看架构: ``` $ docker run --rm ccse-backend-tomcat:9.0.60-p2-arm64 uname -m WARNING: The requested image's platform (linux/arm64/v8) does not match the detected host platform (linux/amd64) and no specific platform was requested aarch64 ``` ### **参考** * https://silenceper.com/blog/202006/build-arm-image-on-x86_84/