【问题标题】:Can I run a docker container doing a x86 build on a IBM Power system?我可以在 IBM Power 系统上运行 docker 容器进行 x86 构建吗?
【发布时间】:2018-09-04 09:27:24
【问题描述】:

我们的构建设置被备份到一个大型 docker 容器中(基本上是一个 2 GB 的映像,本身带有一个完整的 X86 linux)。

我们有两种实际构建的方式:官方的方式是jenkins环境(在X86硬件上运行)。但是我们也有一个运行 RH 7 的小型“X86 侧服务器”。开发人员可以登录到该 RH 服务器并自己启动特定的构建(使用上述 docker 映像)。

这些 RH 服务器将在某个时候关闭,以替换为 IBM Power8 机器(运行 RH7 Little Endian 供电)。

我只是想知道:我们现有的构建设置和 docker 映像是否有可能仅在 Power8 上运行?或者是根本的技术问题使它不太可能甚至不值得尝试?

【问题讨论】:

    标签: docker powerpc


    【解决方案1】:

    您可能可以使用几乎未更改的现有构建方法和脚本,但您需要重新构建实际图像。

    您不能直接在 Power 上运行 x86 二进制文件(在非常低的级别上,机器代码的字节只是不同)。 Docker 不包含任何类型的虚拟化层;它进行了一系列设置以将容器与主机隔离,然后直接在映像中运行二进制文件。

    如果您的 Jenkins 设置有足够的镜像名称和版本标签参数,那么您应该能够同时运行 x86 和 Power 设置;您需要在构建的图像名称或标签中的某处对架构进行编码;例如,repo.example.com/app/build:20180904-power。 (我不知道如果您控制所有机器,则认为其中一个会更好。)如果您有一个私人仓库,您可以在路径的早期对其进行编码,最后使用像 repo.example.com/power/build:20180904 这样的图像名称。

    您需要仔细检查所有具有 Docker 映像引用的位置是否已正确参数化(无论如何这是一个很好的做法)。这将包括任何直接的docker run 命令;任何 Docker Compose 或 Kubernetes YAML 文件或类似工件;和the FROM line of any Dockerfiles

    【讨论】:

    • 确切地说:我不是在询问 Jenkins 设置。保持 x86。
    【解决方案2】:

    现有的构建设置?不确定!
    Docker 镜像?不,甚至不要尝试。

    Docker 镜像实际上是多个层,通过相应的存储驱动程序和支持文件系统存储在文件系统上(如docker info 的输出所示)。

    如果存储驱动程序/支持文件系统已更改(在操作系统更改时可能是这样),旧的 docker 映像将不再有效。这意味着它们肯定必须重建。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-04-23
      • 2020-12-06
      • 1970-01-01
      • 1970-01-01
      • 2014-03-31
      相关资源
      最近更新 更多