Py学习  »  docker

我可以运行一个Docker容器在IBM电源系统上进行x86构建吗?

GhostCat • 6 年前 • 1793 次点击  

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

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

这些rh服务器将在某个时候关闭,以替换为IBMPower8机器(运行rh7 little endian for power)。

我只是在想:我们现有的构建设置和Docker映像是否有可能只在Power8上工作?或者根本性的技术问题不太可能,甚至不值得尝试?

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/38726
文章 [ 2 ]  |  最新文章 6 年前
Light.G
Reply   •   1 楼
Light.G    7 年前

现有生成设置?不确定!
Docker图像?不,不要尝试。

Docker映像实际上是通过相应的存储驱动程序和备份文件系统存储在文件系统上的多个层(如 docker info )

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

David Maze
Reply   •   2 楼
David Maze    7 年前

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

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

如果您的Jenkins安装程序有足够的参数用于图像名称和版本标记,那么您应该能够并行运行x86和电源设置;您需要在构建的图像名称或标记中对架构进行编码;例如, repo.example.com/app/build:20180904-power . (我不知道,如果你控制了所有的机器,其中一个或另一个会被认为更好。)如果你有一个私人回购,你可以在路径中更早地对其进行编码,最后得到像这样的图像名称 repo.example.com/power/build:20180904 .

您需要再次检查具有Docker图像引用的所有地方是否正确参数化了它(无论如何这是一个很好的实践)。包括任何直接的 docker run 命令;任何docker撰写或kubernetes yaml文件或类似的工件;以及 the FROM line of any Dockerfiles .