[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH RFC v4 4/4] docker: Add debootstrap-arm image
From: |
Alex Bennée |
Subject: |
Re: [Qemu-devel] [PATCH RFC v4 4/4] docker: Add debootstrap-arm image |
Date: |
Mon, 11 Jul 2016 20:06:38 +0100 |
User-agent: |
mu4e 0.9.17; emacs 25.0.95.9 |
Fam Zheng <address@hidden> writes:
> Signed-off-by: Fam Zheng <address@hidden>
> ---
> tests/docker/dockerfiles/debootstrap-arm.docker | 35
> +++++++++++++++++++++++++
> 1 file changed, 35 insertions(+)
> create mode 100644 tests/docker/dockerfiles/debootstrap-arm.docker
>
> diff --git a/tests/docker/dockerfiles/debootstrap-arm.docker
> b/tests/docker/dockerfiles/debootstrap-arm.docker
> new file mode 100644
> index 0000000..cb15f2f
> --- /dev/null
> +++ b/tests/docker/dockerfiles/debootstrap-arm.docker
> @@ -0,0 +1,35 @@
> +FROM debian:testing
> +
> +RUN apt-get update
> +RUN apt-get install -y fakeroot debootstrap qemu-user-static
> +
> +RUN mkdir /debootstrap-arm
> +
> +RUN cd /debootstrap-arm && fakeroot debootstrap --variant=buildd --foreign \
> + --arch=armhf testing . http://httpredir.debian.org/debian
> +
> +RUN sed -i 's/in_target mount/echo not for docker in_target mount/g' \
> + /debootstrap-arm/debootstrap/functions
> +
> +RUN mkdir -p /debootstrap-arm/usr/local/bin
> +
> +RUN ln /usr/bin/qemu-arm-static /debootstrap-arm/usr/bin/qemu-arm && \
> + ln /usr/bin/qemu-arm-static /debootstrap-arm/usr/bin/qemu-arm-static && \
> + ln /usr/bin/qemu-arm-static /debootstrap-arm/usr/local/bin/qemu-arm && \
> + ln /usr/bin/qemu-arm-static
> /debootstrap-arm/usr/local/bin/qemu-arm-static
> +
> +# Run stage 2
> +RUN if ! chroot /debootstrap-arm /debootstrap/debootstrap --second-stage;
> then \
> + echo "Failed to chroot and do stage 2"; \
> + echo "Please set up binfmt_misc to point arm binary to one of:"; \
> + echo " /usr/bin/qemu-arm"; \
> + echo " /usr/bin/qemu-arm-static"; \
> + echo " /usr/local/bin/qemu-arm"; \
> + echo " /usr/local/bin/qemu-arm-static"; \
> + exit 1; \
> + fi
> +RUN chroot /debootstrap-arm sh -c 'cat /etc/apt/sources.list | sed
> "s/deb/deb-src/" >> /etc/apt/sources.list'
> +RUN chroot /debootstrap-arm apt-get update
> +RUN chroot /debootstrap-arm apt-get build-dep -y qemu
> +RUN chroot /debootstrap-arm apt-get install -y ccache
> +ENV QEMU_CHROOT /debootstrap-arm
OK I've done some more experimenting and two things are apparent:
debootstrap is widely packaged for various distros
And
The script it fairly portable so we can always run it directly
I hacked up the .pre script to do the following and tested on my Arch
VM:
#!/bin/sh
#
# Simple wrapper for debootstrap, run in the docker build context
#
FAKEROOT=`which fakeroot 2> /dev/null`
DEBOOTSTRAP=`which debootstrap 2> /dev/null`
DEBOOTSTRAP_SOURCE=https://anonscm.debian.org/git/d-i/debootstrap.git
if [ -z $FAKEROOT ]; then
echo "Please install fakeroot to enable bootstraping"
exit 1
fi
if [ -z $DEBOOTSTRAP ]; then
echo "No debootstrap installed, attempting to install from SCM"
git clone ${DEBOOTSTRAP_SOURCE} ./debootstrap.git
export DEBOOTSTRAP_DIR=./debootstrap.git
DEBOOTSTRAP=./debootstrap.git/debootstrap
fi
echo "Building a rootfs using ${FAKEROOT} and ${DEBOOTSTRAP}"
${FAKEROOT} /bin/sh -x ${DEBOOTSTRAP} --variant=buildd --foreign
--arch=$DEB_ARCH $DEB_TYPE . http://httpredir.debian.org/debian
exit 0
So I think it is feasible to but the pre-requisite checking and work
around in the pre script and be done with it. It seems neater than the
chroot within a container approach.
Thoughts?
--
Alex Bennée
- [Qemu-devel] [PATCH RFC v4 2/4] docker: Fix exit code if $CMD failed, (continued)
- [Qemu-devel] [PATCH RFC v4 2/4] docker: Fix exit code if $CMD failed, Fam Zheng, 2016/07/10
- [Qemu-devel] [PATCH RFC v4 1/4] docker: More sensible run script, Fam Zheng, 2016/07/10
- [Qemu-devel] [PATCH RFC v4 3/4] docker: Support "QEMU_CHROOT" in dockerfiles, Fam Zheng, 2016/07/10
- Re: [Qemu-devel] [PATCH RFC v4 3/4] docker: Support "QEMU_CHROOT" in dockerfiles, Alex Bennée, 2016/07/11
- Re: [Qemu-devel] [PATCH RFC v4 3/4] docker: Support "QEMU_CHROOT" in dockerfiles, Alex Bennée, 2016/07/11
- [Qemu-devel] [PATCH RFC v4 4/4] docker: Add debootstrap-arm image, Fam Zheng, 2016/07/10
- Re: [Qemu-devel] [PATCH RFC v4 4/4] docker: Add debootstrap-arm image,
Alex Bennée <=
Re: [Qemu-devel] [PATCH RFC v4 0/4] docker: Support building qemu-user powered docker test images, Alex Bennée, 2016/07/11