gaidel / img-spectru

Tool to build a prepared Raspbian images
MIT License
0 stars 0 forks source link

Быстрый chroot в образ RPI #4

Closed copterspace closed 3 years ago

copterspace commented 3 years ago

@urpylka Артём, после сборки образа я хочу посмотреть например текстовый файлик лога сборки (cat /home/pi/logsborki.txt или ещё какие команды поделать) - внутри образа. Интерактивно, не пиша для этого целый bash скрипт, не заливая образ на RPI.

Щас то что я нашёл:

  1. Пускаем docker run --privileged -i --rm -v $(pwd):/mnt urpylka/img-tool:0.7.1 /bin/bash img-tool
  2. Там набираем img-tool <имя образа> exec Проблема в том, что внутри докера у меня не работает по табу поиск файлов - надо запоминать имя образа, копипастить его хз как, не очень удобно, короче, в 2 шага с 2 копипастами это делать.

Чтоб имя образа подбиралось по TAB - я придумал такую хрень: https://github.com/gaidel/img-spectru/commit/9dfc2c1c949047a75c0e9f0dffe76f0fdd26f7e6

Она вылетает по ошибке - зато образ остаётся приаттаченый - и я могу смотреть файлы в Наутилусе десктопной Убунты (что не пропрёт на сервере, как там с этим быть - отдельный вопрос...). Если я не поставлю hzchevo.sh - он просто бодро примонтирует и успешно отмонтирует образ, что не является целью моей команды. Посоветуй плиз более прямой способ зачерутиться в нужный образ (их же несколько м.б.) и там остаться, из командной строки хост-системы, а не докера.

urpylka commented 3 years ago

вот так ты можешь приаттачиться

docker run --privileged -i --rm -v $(pwd):/mnt urpylka/img-tool:0.7.1 /bin/bash img-tool <img-name> exec

не нужно внутри образа это делать отдельно


по поводу того что ты сделал для табов вообще не понял.

тут лишь одно скажу – -v $(pwd):/mnt в вызове docker run маунтит текущую папку с образами из хост системы и если ты смонтировал другую то изнутри докера к ним доступа не будет.

copterspace commented 3 years ago

Да, проблему отлично решает alias img-tool='docker run --privileged -i --rm -v $(pwd):/mnt urpylka/img-tool:0.7.1 /bin/bash img-tool' в .bashrc.