Qemu регистрирует двоичные файлы, используя образ докера - PullRequest
0 голосов
/ 16 января 2019

Я тестирую multiarch/qemu-user-static образ докера, который должен генерировать двоичные файлы для создания образов для другой архитектуры ЦП.

Я попробовал следующую команду в моем macbook:

docker run --rm --privileged multiarch/qemu-user-static:register

и один из выходных данных:

Setting /usr/bin/qemu-arm-static as binfmt interpreter for arm
sh: write error: File exists

Похоже, сгенерированный файл уже существует.

Моя проблема в том, что я не могу найти qemu-arm-static в /usr/bin/.

Так, где это было спасено?

Спасибо

1 Ответ

0 голосов
/ 16 января 2019

Этот контейнер изменит файлы в /proc/sys/fs/binfmt_misc хоста, так как контейнер будет совместно использовать ядро ​​хоста.

Кандидат в скрипт в контейнере:

qemu_target_list="i386 i486 alpha arm armeb sparc32plus ppc ppc64 ppc64le m68k \
mips mipsel mipsn32 mipsn32el mips64 mips64el \
sh4 sh4eb s390x aarch64 aarch64_be hppa riscv32 riscv64 xtensa xtensaeb microblaze 
microblazeel"

Все вышеперечисленное будет зарегистрировано, но на самом деле на хосте уже зарегистрирован кто-то там, так что вы получите file already exists.

Поскольку скрипт не завершается, вы можете обойти эти ошибки.

Кстати: вы можете использовать docker run -it --rm --privileged --entrypoint /bin/sh multiarch/qemu-user-static:register для входа в контейнер, чтобы посмотреть эти сценарии, если хотите. Согласно его dockerfile, он сначала вызовет /register сценарий оболочки.

...