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 15:19:37 +0100 [thread overview]
Message-ID: <87eg81gohy.fsf@linaro.org> (raw)
In-Reply-To: <CAAqcGHnuzx6z7fKME7x=acKmi1QiBdeuK5HYcM_nvBhPyqTeFg@mail.gmail.com>
Riku Voipio <riku.voipio@linaro.org> writes:
> On 13 June 2016 at 15:30, Alex Bennée <alex.bennee@linaro.org> wrote:
>>
>> 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.
>
> For some value of without problem - you have qemu-user installed, so
> you have /usr/bin/qemu-arm registered, while I have qemu-user-static
> installed and thus /usr/bin/qemu-arm-static registered.
>
> We have the ./scripts/qemu-binfmt-conf.sh we could run if no binfmt's
> appear registered, or at least print an error message for the enduser
> to run it.
I noticed that has been updated recently. I shall have a look and see if
I can make the pre-script return an error if the binfmt conditions
aren't met. Hopefully it doesn't require root permissions to check all
this out ;-)
>
>>>
>>>>>
>>>>> 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
--
Alex Bennée
prev parent reply other threads:[~2016-06-13 14:19 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
2016-06-13 12:39 ` Riku Voipio
2016-06-13 14:19 ` Alex Bennée [this message]
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=87eg81gohy.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).