Register binfmt_misc entry for docker build (#685)
This commit is contained in:
parent
4e92753982
commit
6dc45a80e7
@ -107,6 +107,40 @@ else
|
||||
)
|
||||
fi
|
||||
|
||||
# Check if binfmt_misc is required
|
||||
binfmt_misc_required=1
|
||||
case $(uname -m) in
|
||||
aarch64)
|
||||
binfmt_misc_required=0
|
||||
;;
|
||||
arm*)
|
||||
binfmt_misc_required=0
|
||||
;;
|
||||
esac
|
||||
|
||||
# Check if qemu-arm-static and /proc/sys/fs/binfmt_misc are present
|
||||
if [[ "${binfmt_misc_required}" == "1" ]]; then
|
||||
if ! qemu_arm=$(which qemu-arm-static) ; then
|
||||
echo "qemu-arm-static not found (please install qemu-user-static)"
|
||||
exit 1
|
||||
fi
|
||||
if [ ! -f /proc/sys/fs/binfmt_misc/register ]; then
|
||||
echo "binfmt_misc required but not mounted, trying to mount it..."
|
||||
if ! mount binfmt_misc -t binfmt_misc /proc/sys/fs/binfmt_misc ; then
|
||||
echo "mounting binfmt_misc failed"
|
||||
exit 1
|
||||
fi
|
||||
echo "binfmt_misc mounted"
|
||||
fi
|
||||
# Register qemu-arm for binfmt_misc (binfmt_misc won't care duplicate entries unless they have common names)
|
||||
reg="echo ':qemu-arm-rpi:M::"\
|
||||
"\x7fELF\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x28\x00:"\
|
||||
"\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff:"\
|
||||
"$qemu_arm:F' > /proc/sys/fs/binfmt_misc/register"
|
||||
echo "Registering qemu-arm for binfmt_misc..."
|
||||
sudo bash -c "$reg" 2>/dev/null || true
|
||||
fi
|
||||
|
||||
trap 'echo "got CTRL+C... please wait 5s" && ${DOCKER} stop -t 5 ${DOCKER_CMDLINE_NAME}' SIGINT SIGTERM
|
||||
time ${DOCKER} run \
|
||||
"${DOCKER_CMDLINE_PRE[@]}" \
|
||||
|
Loading…
x
Reference in New Issue
Block a user