qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: "Alex Bennée" <alex.bennee@linaro.org>
To: Riku Voipio <riku.voipio@linaro.org>
Cc: Fam Zheng <famz@redhat.com>,
	qemu-devel qemu-devel <qemu-devel@nongnu.org>
Subject: Re: [Qemu-devel] [PATCH v2 0/3] Support building qemu-user powered docker test images
Date: Mon, 13 Jun 2016 13:30:45 +0100	[thread overview]
Message-ID: <87fushgtje.fsf@linaro.org> (raw)
In-Reply-To: <CAAqcGH=Y8Y9eN3pzOUvm16MRGmd0MMdq+EweLsuy2+KDghj84Q@mail.gmail.com>


Riku Voipio <riku.voipio@linaro.org> writes:

> On 13 June 2016 at 12:22, Alex Bennée <alex.bennee@linaro.org> wrote:
>>
>> Fam Zheng <famz@redhat.com> writes:
>>
>>> On Wed, 06/08 17:35, Alex Bennée wrote:
>>>> Hi,
>>>>
>>>> This is a re-spin of the previous series built on top of
>>>> fam/docker.next. I've made the changes suggested in the last review
>>>> and split the first patch apart to separate (and fix) the build
>>>> directory changes first.
>>>>
>>>> Now it no longer messes with the docker file you can actually
>>>> cross-build tests. First ensure you build the debian-bootstrap image:
>>>>
>>>>     DEB_ARCH=armhf DEB_TYPE=testing \
>>>>       ./tests/docker/docker.py build qemu:debian-bootstrap \
>>>>       ./tests/docker/dockerfiles/debian-bootstrap.docker \
>>>>       --include-executable=./arm-linux-user/qemu-arm
>>>
>>> This can take long depending on the network - I had to explicitly use a close
>>> mirror in the pre script to test this, not sure why the mirror redirector
>>> doesn't work. Eventually I get this error once the pre script succeeds and
>>> docker build starts:
>>>
>>> Sending build context to Docker daemon 235.1 MB
>>> Step 1 : FROM scratch
>>>  --->
>>> Step 2 : ADD . /
>>>  ---> 807bfa810b0c
>>> Removing intermediate container e57ded00b227
>>> Step 3 : RUN sed -i 's/in_target mount/echo not for docker in_target mount/g' /debootstrap/functions
>>>  ---> Running in fd80232b38fc
>>> rpc error: code = 2 desc = "oci runtime error: exec format error"
>>>
>>> IIUC the sed is an armhf binary? Is something missing in the docker file? I
>>> cannot find where the copied qemu-arm is used...
>>
>> Ahh I realise I missed out the implicit binfmt_misc needs to be set up.
>> So on my Ubuntu system just having qemu-user installed means the host
>> system binfmt_misc is set up for armhf binaries to run
>> /usr/bin/qemu-arm. I haven't experimented with explicitly setting up
>> binfmt_misc in the container because it was already working :-/
>
> The containment leaks here. If your host has registered binfmt_misc,
> identical settings will be visible in container. You can't change the
> settings inside docker, unless you start with --privileged. And
> changing binfmt_misc settings inside docker will also change the
> settings in the host. So one needs to tiptoe around setting it up...

Hmm well that makes it interesting. FWIW I'd stick to setting up binfmt
outside the container and defaulting to the "just works" setup depending
on how $HOST sets up binfmt_misc. The original patch actually queried
binfmt_misc to work out the exact path it needed to install qemu-arm in
the $GUEST container. For now we just default to /usr/bin which works on
Debian-types without problem.

>
>>>
>>> Fam
>>>
>>>>
>>>> And then run the test quick target:
>>>>
>>>>     make docker-test-quick@debian-bootstrap J=9 V=1
>>>>
>>>> I'll leave it up to you how we cleanly integrate multi-arch builds
>>>> into the Make system ;-)
>>>>
>>>> Alex Bennée (3):
>>>>   tests/docker/docker.py: docker_dir outside build
>>>>   tests/docker/docker.py: support --include-executable
>>>>   add debian-bootstrap.docker target (and pre script)
>>>>
>>>>  tests/docker/docker.py                           | 68 +++++++++++++++++++++---
>>>>  tests/docker/dockerfiles/debian-bootstrap.docker | 21 ++++++++
>>>>  tests/docker/dockerfiles/debian-bootstrap.pre    |  5 ++
>>>>  3 files changed, 86 insertions(+), 8 deletions(-)
>>>>  create mode 100644 tests/docker/dockerfiles/debian-bootstrap.docker
>>>>  create mode 100755 tests/docker/dockerfiles/debian-bootstrap.pre
>>>>
>>>> --
>>>> 2.7.4
>>>>
>>
>>
>> --
>> Alex Bennée


--
Alex Bennée

  reply	other threads:[~2016-06-13 12:30 UTC|newest]

Thread overview: 17+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-06-08 16:35 [Qemu-devel] [PATCH v2 0/3] Support building qemu-user powered docker test images Alex Bennée
2016-06-08 16:35 ` [Qemu-devel] [PATCH v2 1/3] tests/docker/docker.py: docker_dir outside build Alex Bennée
2016-06-12  6:39   ` Fam Zheng
2016-06-08 16:35 ` [Qemu-devel] [PATCH v2 2/3] tests/docker/docker.py: support --include-executable Alex Bennée
2016-06-12  6:47   ` Fam Zheng
2016-06-13  9:24     ` Alex Bennée
2016-06-13 12:24   ` Riku Voipio
2016-06-08 16:35 ` [Qemu-devel] [PATCH v2 3/3] add debian-bootstrap.docker target (and pre script) Alex Bennée
2016-06-12  7:05   ` Fam Zheng
2016-06-13  9:23     ` Alex Bennée
2016-06-12  8:16 ` [Qemu-devel] [PATCH v2 0/3] Support building qemu-user powered docker test images Fam Zheng
2016-06-13  9:22   ` Alex Bennée
2016-06-13 11:11     ` Fam Zheng
2016-06-13 11:38     ` Riku Voipio
2016-06-13 12:30       ` Alex Bennée [this message]
2016-06-13 12:39         ` Riku Voipio
2016-06-13 14:19           ` Alex Bennée

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87fushgtje.fsf@linaro.org \
    --to=alex.bennee@linaro.org \
    --cc=famz@redhat.com \
    --cc=qemu-devel@nongnu.org \
    --cc=riku.voipio@linaro.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).