c++ - 从 rootfs 创建一个 docker 容器

标签 c++ linux gcc docker dockerfile

我正在处理以下问题:

机器人有一个旧的 Gentoo 操作系统:Linux bob 2.6.33.9-rt31-aldebaran-rt #1 SMP PREEMPT RT Thu Aug 27 21:42:34 CEST 2015

问题:

  1. 我正在尝试为这个机器人构建一个工具链,这样我就可以使用 gcc/g++ 4.9 或更高版本编译新的应用程序。
  2. 机器人不支持,空间有限。
  3. 我尝试设置 RPATH 来复制较新的库版本,但是涉及的问题太多,它不起作用,唯一的解决方案是静态链接。
  4. 在我看来,我需要通过从机器人创建 rootfs 来构建应用程序。

所以我rsync'ed 整个机器人操作系统到我的电脑。 现在我想构建一个 docker 镜像,这样我就可以使用它从头开始构建 gcc/g++,而不受机器人的限制(它有一个 Intel(R) Atom(TM) CPU Z530 @ 1.60GHz , 1Gb 内存和仅 29Mb 可用硬盘)。

  • 我使用 rsync 复制并保留了所有属性、所有权等。
  • rootfs 位于 /home/alex/roots
  • 我知道我需要以 root 身份运行 docker -t someorg/somename/home/alexrootfs

我的问题是(把我当作 docker 的菜鸟):

  • 我需要在 i686 操作系统/KVM 下运行,因为这是机器人操作系统运行的平台?
  • 我需要在 rootfs 内的 Dockerfile 中设置一些细节(例如 /home/alex/rootfs/Dockerfile

是否有任何其他提示、提示或问题来自以前做过这件事的人? 我想使用 docker 而不是 chroot,因为这最终应该成为为机器人构建应用程序但构建在其他机器上的自动化工具的一部分。

非常感谢!

最佳答案

是的,您需要在与机器人相同的架构上运行 docker。

如果您已经拥有一个完整的 rootfs,Dockerfile 将如下所示:

FROM scratch
ADD . /

你将使用

docker build -t someorg/somename /home/alex/rootfs/

关于c++ - 从 rootfs 创建一个 docker 容器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39575478/

相关文章:

linux - logrotate 非 .log

c - 如何管理共享库中的 undefined symbol

node.js - 如何根据具有相对位置的共享库构建 nodejs C++ 插件

c++ - 当您只需要这些参数之一时,使用通过引用传递的不同参数调用函数的最佳方法

C++构造函数中的通用引用和返回值优化(rvo)

linux - 如何将参数传递给 source 命令调用的脚本?

php - 自动从数据库中删除退回的电子邮件地址?

c++ - std::unique_ptr 在 GCC 中工作,但不会在 Visual Studio 中编译

c++ - 在本地 spoj 上的 "Edit distance"中声明二维数组会产生运行时错误?

c++ - C++函数的默认参数是如何传递的?