2016-09-19 3 views
1

Я имею дело со следующим вопросом:создание Docker контейнера из корневой файловой системы

Робот имеет старый Gentoo OS: Linux bob 2.6.33.9-rt31-aldebaran-rt #1 SMP PREEMPT RT Thu Aug 27 21:42:34 CEST 2015

Проблема:

  1. Я пытаюсь построить toolchain для этого робота, так что я могу скомпилировать новые приложения, используя gcc/g ++ 4.9 или новее.
  2. Робот не поддерживает это и ограниченное пространство.
  3. Я попытался установить RPATH для копирования более новых версий библиотеки, но есть слишком много проблем, это не сработало, и единственным решением было статическое связывание.
  4. Мне кажется, что мне нужно создавать приложения, создавая rootfs из робота.

Итак, я rsync'ed всю операционную систему робота на свой компьютер. Теперь я хочу создать изображение докера, чтобы я мог использовать его для сборки gcc/g ++ с нуля без ограничений Robot (у него есть Intel(R) Atom(TM) CPU Z530 @ 1.60GHz, 1 ГБ ОЗУ и только 29 Мб доступного жесткого диска).

  • Я скопировал с rsync и сохранил все атрибуты, собственность и т. Д.
  • В корневой файловой системы находится на /home/alex/roots
  • Я знаю, что мне нужно бежать как корень docker -t someorg/somename /home/alexrootfs

Мои вопросы (относиться ко мне как нуб в Докер):

  • мне нужно бежать под i686 OS/KVM, так как это то, чем работает ОС робота?
  • мне нужно установить некоторые особенности в Dockerfile внутри корневой файловой системы (например /home/alex/rootfs/Dockerfile

Есть ли какие-либо другие подсказки, советы или проблемы с кем-то, кто сделал это раньше? я хочу использовать докер, а не корневым так как это в конечном счете, должны быть частью автоматизированного инструмента для создания приложений для робота, но построены на других машинах.

Большое спасибо заранее!

ответ

1

Вам нужно будет работать докер на той же архитектуре, что и робот, да .

Если у вас уже есть полный корневой файловой системы, то Dockerfile будет выглядеть примерно так:

FROM scratch 
ADD ./

и вы бы построить с помощью

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