From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:44448) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bMZRF-00010R-Kb for qemu-devel@nongnu.org; Mon, 11 Jul 2016 07:31:50 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1bMZRB-0003Mp-AK for qemu-devel@nongnu.org; Mon, 11 Jul 2016 07:31:48 -0400 Received: from mail-wm0-x234.google.com ([2a00:1450:400c:c09::234]:38825) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bMZRA-0003MY-QF for qemu-devel@nongnu.org; Mon, 11 Jul 2016 07:31:45 -0400 Received: by mail-wm0-x234.google.com with SMTP id o80so45399147wme.1 for ; Mon, 11 Jul 2016 04:31:44 -0700 (PDT) References: <1468207242-5015-1-git-send-email-famz@redhat.com> <1468207242-5015-4-git-send-email-famz@redhat.com> From: Alex =?utf-8?Q?Benn=C3=A9e?= In-reply-to: <1468207242-5015-4-git-send-email-famz@redhat.com> Date: Mon, 11 Jul 2016 12:31:46 +0100 Message-ID: <87poqk9zrx.fsf@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit Subject: Re: [Qemu-devel] [PATCH RFC v4 3/4] docker: Support "QEMU_CHROOT" in dockerfiles List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Fam Zheng Cc: qemu-devel@nongnu.org Fam Zheng 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 > --- > 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