qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH v2 3/3] add debian-bootstrap.docker target (and


From: Alex Bennée
Subject: Re: [Qemu-devel] [PATCH v2 3/3] add debian-bootstrap.docker target (and pre script)
Date: Mon, 13 Jun 2016 10:23:14 +0100
User-agent: mu4e 0.9.17; emacs 25.0.95.1

Fam Zheng <address@hidden> writes:

> On Wed, 06/08 17:35, Alex Bennée wrote:
>> Together with the debian-bootstrap.pre script can now build an arbitrary
>> architecture of Debian using debootstrap. The docker script will now
>> search for an associated $dockerfile.pre script which gets run in the
>> same build context as the dockerfile will be. This allows debootstrap to
>> set up its first stage before the container is built.
>>
>> To build a container you need a command line like:
>>
>>   DEB_ARCH=armhf DEB_TYPE=testing \
>>     ./tests/docker/docker.py build \
>>     --include-executable=arm-linux-user/qemu-arm debian:armhf \
>>     ./tests/docker/dockerfiles/debian-bootstrap.docker
>>
>> Signed-off-by: Alex Bennée <address@hidden>
>>
>> ---
>> v2
>>   - use .pre script instead of embedded HOST_CMD
>>   - make default image include all QEMU build-deps
>> ---
>>  tests/docker/docker.py                           |  5 +++++
>
> Could you split the docker.py into a separate patch?

Sure.

>
>>  tests/docker/dockerfiles/debian-bootstrap.docker | 21 +++++++++++++++++++++
>>  tests/docker/dockerfiles/debian-bootstrap.pre    |  5 +++++
>>  3 files changed, 31 insertions(+)
>>  create mode 100644 tests/docker/dockerfiles/debian-bootstrap.docker
>>  create mode 100755 tests/docker/dockerfiles/debian-bootstrap.pre
>>
>> diff --git a/tests/docker/docker.py b/tests/docker/docker.py
>> index ed6fa45..43041eb 100755
>> --- a/tests/docker/docker.py
>> +++ b/tests/docker/docker.py
>> @@ -205,6 +205,11 @@ class BuildCommand(SubCommand):
>>              # Create a docker context directory for the build
>>              docker_dir = tempfile.mkdtemp(prefix="docker_build")
>>
>> +            # Is there a .pre file to run in the build context?
>> +            docker_pre = os.path.splitext(args.dockerfile)[0]+".pre"
>> +            if os.path.exists(docker_pre):
>> +                subprocess.call(os.path.realpath(docker_pre), 
>> cwd=docker_dir)
>
> We should probably abort here if exit code is non-zero. Use
> subprocess.check_call?

OK.

>
> Fam
>
>> +
>>              # Do we include a extra binary?
>>              if args.include_executable:
>>                  _copy_binary_with_libs(args.include_executable,
>> diff --git a/tests/docker/dockerfiles/debian-bootstrap.docker 
>> b/tests/docker/dockerfiles/debian-bootstrap.docker
>> new file mode 100644
>> index 0000000..3a9125e
>> --- /dev/null
>> +++ b/tests/docker/dockerfiles/debian-bootstrap.docker
>> @@ -0,0 +1,21 @@
>> +# Create Debian Bootstrap Image
>> +#
>> +# This is intended to be pre-poluated by:
>> +#  - a first stage debootstrap (see debian-bootstrap.pre)
>> +#  - a native qemu-$arch that binfmt_misc will run
>> +FROM scratch
>> +
>> +# Add everything from the context into the container
>> +ADD . /
>> +
>> +# Patch all mounts as docker already has stuff set up
>> +RUN sed -i 's/in_target mount/echo not for docker in_target mount/g' 
>> /debootstrap/functions
>> +
>> +# Run stage 2
>> +RUN /debootstrap/debootstrap --second-stage
>> +
>> +# At this point we can install additional packages if we want
>> +# Duplicate deb line as deb-src
>> +RUN cat /etc/apt/sources.list | sed "s/deb/deb-src/" >> 
>> /etc/apt/sources.list
>> +RUN apt-get update
>> +RUN apt-get -y build-dep qemu
>> diff --git a/tests/docker/dockerfiles/debian-bootstrap.pre 
>> b/tests/docker/dockerfiles/debian-bootstrap.pre
>> new file mode 100755
>> index 0000000..6f42da6
>> --- /dev/null
>> +++ b/tests/docker/dockerfiles/debian-bootstrap.pre
>> @@ -0,0 +1,5 @@
>> +#!/bin/sh
>> +#
>> +# Simple wrapper for debootstrap, run in the docker build context
>> +#
>> +fakeroot debootstrap --variant=buildd --foreign --arch=$DEB_ARCH $DEB_TYPE 
>> . http://httpredir.debian.org/debian
>> --
>> 2.7.4
>>


--
Alex Bennée



reply via email to

[Prev in Thread] Current Thread [Next in Thread]