在x86上使用Qemu for ARM / x86构建映像

时间:2019-01-17 09:49:46

标签: docker x86 arm qemu

我试图了解如何在x86 here上构建手臂图像,但是我遇到了困难。

我要实现的目标如下:

  • 只有一个dockerfile来构建两个ARM / x86映像。
  • 具有要在CI代理上执行的命令,该命令显式定义了我要为其构建映像的体系结构。

步骤似乎如下:

  1. 在基本映像中添加QEMU for ARM的二进制文件。每个人都建议使用其中包含二进制文件的预构建图像(例如var niceOrders = headers .DistinctBy(h => h.OrderNumber) .SelectMany(d => details.Where(d => d.OrderNumber = y)) .Select(x => new NiceOrder() { OrderNumber = x.OrderNumber, Customer = x.Customer, ItemCode = x.ItemCode // etc. });

  2. 通过运行以下命令在CI构建代理中注册QEMU二进制文件:resin/rpi-raspbian

除了我不了解这两个步骤中的所有魔术外,在笔记本电脑上尝试了第二个步骤后,我有点理解了: 它生成一堆二进制文件,这些二进制文件需要用于模拟所需的体系结构。

  • 如果我在第2步中使用命令生成二进制文件,为什么我需要一个带有QEMU二进制文件的映像?
  • 我当前的基本映像是docker run --rm --privileged multiarch/qemu-user-static:register -- reset,我可以在ARM设备上成功生成ARM映像,为什么我需要使用ARM特定的映像?我无法达到保持debian:strech的需要吗?我问这个问题是因为我想有一个docker文件来为x86和ARM都构建映像。

如果有人可以对此有所了解,我将非常感激。

0 个答案:

没有答案