]> xenbits.xensource.com Git - people/sstabellini/mojo.git/.git/commitdiff
Build Xen, tools and kernel from Docker build
authorStefano Stabellini <sstabellini@kernel.org>
Tue, 14 Nov 2017 00:55:40 +0000 (16:55 -0800)
committerStefano Stabellini <sstabellini@kernel.org>
Tue, 14 Nov 2017 00:55:40 +0000 (16:55 -0800)
No need to run "xen-builder" anymore. The build is done at "docker
build" time. The output is not copied back to the host, it is imported
directly into the dom0 container using COPY --from.

Signed-off-by: Stefano Stabellini <sstabellini@kernel.org>
build.sh
dom0/alpine-assemble
dom0/alpine-build
dom0/alpine-build-script [deleted file]

index 3207e09dbb4fea87dbd1c082b14bc4e46779d76c..cdd43f936bb27c973b622a1cb618bfbc14342103 100644 (file)
--- a/build.sh
+++ b/build.sh
@@ -13,15 +13,6 @@ then
     docker build -f dom0/alpine-build -t $BUILDER_LABEL .
 fi
 
-
-# Run build container: build Xen and QEMU
-if ! test -d out
-then
-    mkdir out
-    docker run -v $OUT_DIR:/root/out -t $BUILDER_LABEL /root/alpine-build-script
-fi
-
-
 # Create Dom0
 exists=`docker images $DOM0_LABEL | grep $DOM0_LABEL`
 if test -z "$exists"
index 6959ada9884576c14c65f599f5428361baa8a5bd..ab1eb14dc7b66caa00f95d279a7722f454833e37 100644 (file)
@@ -1,13 +1,13 @@
 FROM alpine
 
-ADD out/xen /root/
-ADD out/qemu /root/
+RUN \
+    apk update && \
+       apk add openrc
+
 ADD dom0/udhcpc.script /usr/share/udhcpc/default.script
+COPY --from=xen-builder /root/out/ /
 
 RUN \
-    apk update && \
-# System
-       apk add openrc && \
        rc-update add networking sysinit && \
        rc-update add loopback sysinit && \
        for i in /etc/init.d/*; do rc-update add $i default; done && \
@@ -15,8 +15,6 @@ RUN \
        echo "auto lo" > /etc/network/interfaces && \
        echo "auto eth0" >> /etc/network/interfaces && \
        echo "iface eth0 inet dhcp" >> /etc/network/interfaces && \
-# Install
-       cd /root && cp -ar * / && rm -rf * && \
        echo "ttyS0" >> /etc/securetty && \
        echo "ttyS0::respawn:/sbin/getty -L ttyS0 115200 vt100" >> /etc/inittab && \
 # Xen run deps
@@ -25,6 +23,7 @@ RUN \
 # QEMU run deps
     apk add glib pixman libcap libattr
 
+
 ADD dom0/sleep /root
 
 ENTRYPOINT ["/bin/sh"]
index 2036c2909a3ceacf08218db4ec73b6c6e3be45e2..3b4ded05b379f7dc92b46fea7215a2e6c384c039 100644 (file)
@@ -1,10 +1,16 @@
-FROM alpine
+FROM alpine as xen-builder
 
 COPY dom0/xen-patch /root/
 COPY dom0/qemu-patch /root/
 COPY dom0/linux-config /root/
 COPY dom0/alpine-build-script /root/
 
+ENV SOURCE_DIR=/root
+ENV OUT_DIR=/root/out
+ENV XEN_VERSION=4.10.0-rc3
+ENV QEMU_VERSION=2.10.1
+ENV LINUX_VERSION=4.14
+
 RUN \
     apk update && \
 # Xen build deps
@@ -17,4 +23,45 @@ RUN \
     chmod +x /root/alpine-build-script && \
 # Linux build deps
     apk add bc
+
+# Download and build Xen
+RUN \
+cd $SOURCE_DIR && \
+curl -fsSLO https://downloads.xenproject.org/release/xen/$XEN_VERSION/xen-$XEN_VERSION.tar.gz && \
+tar xvzf xen-$XEN_VERSION.tar.gz && \
+cd xen-$XEN_VERSION && \
+patch -p1 < $SOURCE_DIR/xen-patch && \
+./configure --prefix=/usr --with-system-qemu=/usr/lib/xen/bin/qemu-system-i386 --disable-stubdom --disable-qemu-traditional --disable-rombios && \
+make -j4 && \
+mkdir -p DESTDIR=$OUT_DIR/xen && \
+make DESTDIR=$OUT_DIR install
+
+# Download and build QEMU
+RUN \
+cd $SOURCE_DIR && \
+curl -fsSLO https://download.qemu.org/qemu-$QEMU_VERSION.tar.xz && \
+tar xvJf qemu-$QEMU_VERSION.tar.xz && \
+cd qemu-$QEMU_VERSION && \
+patch -p1 < $SOURCE_DIR/qemu-patch && \
+export PKG_CONFIG_PATH=$SOURCE_DIR/xen/tools/pkg-config && \
+export INST_DIR=$OUT_DIR/xen && \
+./configure --prefix=/usr --enable-xen --target-list=i386-softmmu \
+               --extra-cflags="-I$INST_DIR/usr/include" \
+        --extra-ldflags="-L$INST_DIR/usr/lib -Wl,-rpath-link=$INST_DIR/usr/lib \
+                         -L$INST_DIR/usr/lib64 -Wl,-rpath-link=$INST_DIR/usr/lib64" \
+        --disable-kvm --enable-virtfs --disable-werror && \
+make -j 4 && \
+mkdir -p DESTDIR=$OUT_DIR/qemu && \
+make DESTDIR=$OUT_DIR install
+
+# Download and build Linux
+RUN \
+cd $SOURCE_DIR && \
+curl -fsSLO https://www.kernel.org/pub/linux/kernel/v4.x/linux-$LINUX_VERSION.tar.xz && \
+tar xvJf linux-$LINUX_VERSION.tar.xz && \
+cd linux-$LINUX_VERSION && \
+cp $SOURCE_DIR/linux-config .config && \
+make -j 4 && \
+cp arch/x86/boot/bzImage $OUT_DIR/boot/kernel
+
 ENTRYPOINT ["/bin/sh"]
diff --git a/dom0/alpine-build-script b/dom0/alpine-build-script
deleted file mode 100644 (file)
index 3420f86..0000000
+++ /dev/null
@@ -1,43 +0,0 @@
-#!/bin/bash
-
-SOURCE_DIR=/root
-OUT_DIR=/root/out
-XEN_VERSION=4.10.0-rc3
-QEMU_VERSION=2.10.1
-LINUX_VERSION=4.14
-
-cd $SOURCE_DIR
-curl -fsSLO https://downloads.xenproject.org/release/xen/$XEN_VERSION/xen-$XEN_VERSION.tar.gz
-tar xvzf xen-$XEN_VERSION.tar.gz
-cd xen-$XEN_VERSION
-patch -p1 < $SOURCE_DIR/xen-patch
-./configure --prefix=/usr --with-system-qemu=/usr/lib/xen/bin/qemu-system-i386 --disable-stubdom --disable-qemu-traditional --disable-rombios
-make -j4
-mkdir -p DESTDIR=$OUT_DIR/xen
-make DESTDIR=$OUT_DIR/xen install
-
-cd $SOURCE_DIR
-curl -fsSLO https://download.qemu.org/qemu-$QEMU_VERSION.tar.xz
-tar xvJf qemu-$QEMU_VERSION.tar.xz
-cd qemu-$QEMU_VERSION
-patch -p1 < $SOURCE_DIR/qemu-patch
-export PKG_CONFIG_PATH=$SOURCE_DIR/xen/tools/pkg-config
-export INST_DIR=$OUT_DIR/xen
-./configure --prefix=/usr --enable-xen --target-list=i386-softmmu \
-               --extra-cflags="-I$INST_DIR/usr/include" \
-        --extra-ldflags="-L$INST_DIR/usr/lib -Wl,-rpath-link=$INST_DIR/usr/lib \
-                         -L$INST_DIR/usr/lib64 -Wl,-rpath-link=$INST_DIR/usr/lib64" \
-        --disable-kvm --enable-virtfs --disable-werror
-make -j 4
-mkdir -p DESTDIR=$OUT_DIR/qemu
-make DESTDIR=$OUT_DIR/qemu install
-mkdir -p DESTDIR=$OUT_DIR/xen/usr/lib/xen/bin
-cp i386-softmmu/qemu-system-i386 $OUT_DIR/xen/usr/lib/xen/bin
-
-cd $SOURCE_DIR
-curl -fsSLO https://www.kernel.org/pub/linux/kernel/v4.x/linux-$LINUX_VERSION.tar.xz
-tar xvJf linux-$LINUX_VERSION.tar.xz
-cd linux-$LINUX_VERSION
-cp $SOURCE_DIR/linux-config .config
-make -j 4
-cp arch/x86/boot/bzImage $OUT_DIR/xen/boot/kernel