从rootfs

时间:2016-09-19 14:19:55

标签: 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来构建应用程序。
  5. 所以我rsync'ed整个机器人操作系统到我的电脑。 现在我想构建一个docker镜像,这样我就可以使用它从头开始构建gcc / g ++而没有Robot的限制(它有一个Intel(R) Atom(TM) CPU Z530 @ 1.60GHz,1Gb的RAM和只有29Mb的硬盘可用。)

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

    我的问题是(把我视为码头工人的菜鸟):

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

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

    非常感谢提前!

1 个答案:

答案 0 :(得分:1)

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

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

FROM scratch
ADD . /

你将使用

构建
docker -t someorg/somename /home/alex/rootfs/