Fam Zheng <f...@redhat.com> writes: > This allows a docker file to say "ENV QEMU_CHROOT /path/to/new/root" to > indicate that the test execution should be done in a chroot in the > container. > > Bind mount dev,sys,proc into QEMU_CHROOT to make them avaiable for > testing scripts. > > The SYS_ADMIN is a required capability for mount, add it to the > docker run command line. > > Signed-off-by: Fam Zheng <f...@redhat.com> > --- > tests/docker/Makefile.include | 1 + > tests/docker/run | 12 ++++++++++++ > 2 files changed, 13 insertions(+) > > diff --git a/tests/docker/Makefile.include b/tests/docker/Makefile.include > index c5546ee..e9821ba 100644 > --- a/tests/docker/Makefile.include > +++ b/tests/docker/Makefile.include > @@ -107,6 +107,7 @@ docker-run-%: docker-qemu-src > $(call quiet-command,\ > $(SRC_PATH)/tests/docker/docker.py run $(if $V,,--rm) \ > -t \ > + --cap-add SYS_ADMIN \ > $(if $(DEBUG),-i,--net=none) \ > -e TARGET_LIST=$(TARGET_LIST) \ > -e EXTRA_CONFIGURE_OPTS=$(EXTRA_CONFIGURE_OPTS) > \ > diff --git a/tests/docker/run b/tests/docker/run > index 38ce789..4e80cc3 100755 > --- a/tests/docker/run > +++ b/tests/docker/run > @@ -19,6 +19,18 @@ fi > > BASE="$(dirname $(realpath $0))" > > +# cp files into the chroot and execute there > +if test -n "$QEMU_CHROOT"; then > + mkdir -p $QEMU_CHROOT/$BASE > + cp $BASE/* $QEMU_CHROOT/$BASE > + QEMU_CHROOT_SAVE="$QEMU_CHROOT" > + for bp in dev sys proc; do > + mount --bind /$bp $QEMU_CHROOT/$bp
So this misses out /dev/pts which is a subdir of dev which leads to messages like: debconf: delaying package configuration, since apt-utils is not installed Fetched 103 kB in 0s (133 kB/s) E: Can not write log (Is /dev/pts mounted?) - posix_openpt (2: No such file or directory) > + done > + QEMU_CHROOT="" chroot $QEMU_CHROOT_SAVE $BASE/run "$@" > + exit 0 > +fi > + > # Prepare the environment > . /etc/profile || true > export PATH=/usr/lib/ccache:$PATH -- Alex Bennée