我正在处理以下问题:
机器人有一个旧的 Gentoo 操作系统:Linux bob 2.6.33.9-rt31-aldebaran-rt #1 SMP PREEMPT RT Thu Aug 27 21:42:34 CEST 2015
问题:
- 我正在尝试为这个机器人构建一个工具链,这样我就可以使用 gcc/g++ 4.9 或更高版本编译新的应用程序。
- 机器人不支持,空间有限。
- 我尝试设置 RPATH 来复制较新的库版本,但是涉及的问题太多,它不起作用,唯一的解决方案是静态链接。
- 在我看来,我需要通过从机器人创建 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/