docker交叉编译
- 安装 binfmt/QEMU
执行:
docker run --privileged --rm tonistiigi/binfmt --install all
正常输出类似:
installing: arm64 OK
installing: arm OK
installing: riscv64 OK
…
创建支持多架构的 builder
不要使用 default。
创建新的:
docker buildx create
–name multiarch
–driver docker-container
–use
注意这里:
–driver docker-container
很重要。
因为:
driver=docker
能力有限。
3. 初始化
docker buildx inspect --bootstrap
现在应该看到:
Platforms:
linux/amd64
linux/amd64/v2
linux/amd64/v3
linux/arm64
linux/arm/v7
…
4. 测试 ARM64
先不要编译你的 ROS。
测试:
docker buildx build
–platform linux/arm64
-t test-arm64
–load
.
或者简单:
docker run
–rm
–platform linux/arm64
ubuntu:20.04
uname -m
应该输出:
aarch64
5. 对你的 mtare 项目
之后:
docker buildx build
–platform linux/arm64
-t mtare:arm64
-f Dockerfile.dev
–load
.
其中:
–load
表示:
构建完成后导入本地 docker image。
适合测试。
如果以后推送到 Docker Hub:
用:
docker buildx build
–platform linux/arm64
-t username/mtare:arm64
–push .
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 雯欂の修仙笔记!