From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:55154) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bMa94-0006UG-EM for qemu-devel@nongnu.org; Mon, 11 Jul 2016 08:17:07 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1bMa90-0003qU-85 for qemu-devel@nongnu.org; Mon, 11 Jul 2016 08:17:05 -0400 Received: from mail-wm0-x22f.google.com ([2a00:1450:400c:c09::22f]:38488) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bMa90-0003qQ-2B for qemu-devel@nongnu.org; Mon, 11 Jul 2016 08:17:02 -0400 Received: by mail-wm0-x22f.google.com with SMTP id o80so46904558wme.1 for ; Mon, 11 Jul 2016 05:17:02 -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 13:17:04 +0100 Message-ID: <87k2gs9xof.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 > + done > + QEMU_CHROOT="" chroot $QEMU_CHROOT_SAVE $BASE/run "$@" > + exit 0 > +fi > + Running: make docker-test TEST="test-quick" IMAGES="debootstrap-arm" V=1 J=9 Hmm another failure: Image is up to date. /home/alex/lsrc/qemu/qemu.git/tests/docker/docker.py run -t --cap-add SYS_ADMIN --net=none -e TARGET_LIST= -e EXTRA_CONFIGURE_OPTS= -e V=1 -e J=9 -e DEBUG= -e CCACHE_DIR=/var/tmp/ccache -v $(realpath docker-src.2016-07-11-13.16.09.23334):/var/tmp/qemu:z,ro -v $HOME/.cache/qemu-docker-ccache:/var/tmp/ccache:z qemu:debootstrap-arm /var/tmp/qemu/run test-clang; +++ realpath /var/tmp/qemu/run ++ dirname /var/tmp/qemu/run + BASE=/var/tmp/qemu + test -n /debootstrap-arm + mkdir -p /debootstrap-arm//var/tmp/qemu + cp /var/tmp/qemu/dtc.tgz /var/tmp/qemu/pixman.tgz /var/tmp/qemu/qemu.tgz /var/tmp/qemu/run /debootstrap-arm//var/tmp/qemu + QEMU_CHROOT_SAVE=/debootstrap-arm + for bp in dev sys proc + mount --bind /dev /debootstrap-arm/dev mount: mount /dev on /debootstrap-arm/dev failed: Permission denied /home/alex/lsrc/qemu/qemu.git/tests/docker/Makefile.include:102: recipe for target 'docker-run-test-clang@debootstrap-arm' failed make: *** [docker-run-test-clang@debootstrap-arm] Error 32 You have new mail in /var/mail/alex > # Prepare the environment > . /etc/profile || true > export PATH=/usr/lib/ccache:$PATH -- Alex Bennée