Move built kernel to arch specific subdir

We want be able to build kernels for different archs without that they
clash with each other so we but the generated files into an $arch subdir.

Signed-off-by: Natanael Copa <natanael.copa@docker.com>
This commit is contained in:
Natanael Copa 2016-07-22 12:25:54 +02:00
parent 2547512809
commit 66ba586cac
11 changed files with 39 additions and 38 deletions

View File

@ -1,6 +1,6 @@
FROM justincormack/alpine-qemu
COPY alpine/initrd.img.gz .
COPY alpine/kernel/vmlinuz64 .
COPY alpine/kernel/x86_64/vmlinuz64 .
ENTRYPOINT [ "qemu-system-x86_64", "-serial", "stdio", "-kernel", "vmlinuz64", "-initrd", "initrd.img.gz", "-m", "2048", "-append", "earlyprintk=serial console=ttyS0 noapic", "-vnc", "none" ]

View File

@ -1,7 +1,7 @@
FROM justincormack/alpine-qemu
COPY alpine/initrd-arm.img .
COPY alpine/kernel/zImage .
COPY alpine/kernel/arm/zImage .
COPY alpine/kernel/dtb dtb
RUN gzip -9 initrd-arm.img

View File

@ -1,6 +1,6 @@
FROM justincormack/alpine-qemu
COPY alpine/initrd.img.gz .
COPY alpine/kernel/vmlinuz64 .
COPY alpine/kernel/x86_64/vmlinuz64 .
ENTRYPOINT [ "qemu-system-x86_64", "-serial", "stdio", "-kernel", "vmlinuz64", "-initrd", "initrd.img.gz", "-m", "1024", "-append", "earlyprintk=serial console=ttyS0 noapic mobyplatform=test", "-vnc", "none" ]

View File

@ -1,5 +1,7 @@
FROM alpine:3.4
ENV ARCH=x86_64
RUN \
addgroup -g 50 docker && \
adduser -G docker -u 1001 -s /bin/sh -D -g "Docker" docker && \
@ -30,11 +32,11 @@ RUN \
COPY etc /etc/
RUN mkdir -p /etc/docker
ADD kernel/aufs-utils.tar /
ADD kernel/$ARCH/aufs-utils.tar /
COPY mkinitrd.sh /bin/
COPY kernel/kernel-source-info /etc/
ADD kernel/kernel-patches.tar /etc/kernel-patches
ADD kernel/kernel-modules.tar /
COPY kernel/$ARCH/kernel-source-info /etc/
ADD kernel/$ARCH/kernel-patches.tar /etc/kernel-patches
ADD kernel/$ARCH/kernel-modules.tar /
COPY packages/proxy/slirp-proxy /usr/bin/
COPY packages/proxy/slirp-proxy /sbin/proxy-vsockd

View File

@ -1,6 +1,8 @@
# Create a legacy BIOS bootable ISO
FROM ubuntu:15.10
ENV ARCH=x86_64
RUN apt-get update && apt-get -y upgrade && apt-get -y install \
genisoimage \
xorriso \
@ -13,7 +15,7 @@ RUN mkdir -p /tmp/iso/isolinux && \
cp usr/lib/syslinux/modules/bios/ldlinux.c32 /tmp/iso/isolinux
COPY initrd.img /tmp/iso
COPY kernel/vmlinuz64 /tmp/iso
COPY kernel/$ARCH/vmlinuz64 /tmp/iso
COPY isolinux.cfg /tmp/iso/isolinux
RUN cd /tmp/iso && \

View File

@ -1,12 +1,14 @@
# Create a EFI Bootable ISO
FROM alpine:3.4
ENV ARCH=x86_64
RUN apk add --no-cache binutils mtools xorriso gummiboot
RUN mkdir -p /tmp/efi
COPY initrd.img.gz /tmp/efi
COPY kernel/vmlinuz64 /tmp/efi
COPY kernel/$ARCH/vmlinuz64 /tmp/efi
# Create a EFI boot file with kernel and initrd. From:
# https://github.com/haraldh/mkrescue-uefi/blob/master/mkrescue-uefi.sh

View File

@ -1,9 +1,2 @@
vmlinuz64
vmlinux
zImage
aufs-utils.tar
kernel-patches.tar
kernel-modules.tar
kernel-source-info
mobykernel-build
mobyarmkernel-build
x86_64
arm

View File

@ -57,7 +57,7 @@ RUN git clone -b "$AUFS_BRANCH" "$AUFS_REPO" /aufs && \
patch -p1 < "$patch"; \
done
COPY kernel_config /linux/arch/x86/configs/x86_64_defconfig
COPY kernel_config.x86_64 /linux/arch/x86/configs/x86_64_defconfig
COPY kernel_config.arm /linux/arch/arm/configs/versatile_defconfig
# Apply local patches

View File

@ -1,28 +1,30 @@
all: vmlinuz64
ARCH ?= x86_64
mobykernel-build: Dockerfile kernel_config
docker build -t mobykernel:build .
all: $(ARCH)/vmlinuz64
$(ARCH)/mobykernel-build: Dockerfile kernel_config.$(ARCH)
mkdir -p $(ARCH) && \
docker build --build-arg ARCH=$(ARCH) -t mobykernel-$(ARCH):build .
touch $@
mobyarmkernel-build: Dockerfile kernel_config.arm
docker build --build-arg ARCH=arm -t mobyarmkernel:build .
touch $@
$(ARCH)/aufs-utils.tar $(ARCH)/kernel-source-info $(ARCH)/kernel-patches.tar $(ARCH)/kernel-modules.tar: $(ARCH)/mobykernel-build
docker run --rm mobykernel-$(ARCH):build cat /$(notdir $@) > $@ || ! rm $@
aufs-utils.tar kernel-source-info kernel-patches.tar kernel-modules.tar: mobykernel-build
docker run --rm mobykernel:build cat /$@ > $@ || ! rm $@
$(ARCH)/bzImage $(ARCH)/zImage: $(ARCH)/aufs-utils.tar $(ARCH)/kernel-source-info $(ARCH)/kernel-patches.tar $(ARCH)/kernel-modules.tar $(ARCH)/mobykernel-build
docker run --rm mobykernel-$(ARCH):build cat /linux/arch/$(ARCH)/boot/$(notdir $@) > $@ || ! rm $@
vmlinuz64: aufs-utils.tar kernel-source-info kernel-patches.tar kernel-modules.tar mobykernel-build
docker run --rm mobykernel:build cat /linux/arch/x86_64/boot/bzImage > $@ || ! rm $@
$(ARCH)/vmlinux: $(ARCH)/bzImage
docker run --rm mobykernel-$(ARCH):build cat /linux/vmlinux > $@ || ! rm $@
vmlinux: vmlinuz64
docker run --rm mobykernel:build cat /linux/vmlinux > $@ || ! rm $@
$(ARCH)/vmlinuz64: $(ARCH)/bzImage
cp $< $@
arm: zImage
arm: arm/zImage
zImage: mobyarmkernel-build aufs-utils.tar kernel-source-info kernel-patches.tar kernel-modules.tar
docker run --rm mobyarmkernel:build cat /linux/arch/arm/boot/zImage > $@
clean-arch:
rm -rf $(ARCH)
docker images -q mobykernel-$(ARCH):build | xargs docker rmi -f || true
clean:
rm -f zImage vmlinuz64 aufs-utils.tar kernel-source-info kernel-patches.tar mobykernel-build mobyarmkernel-build
docker images -q mobykernel:build | xargs docker rmi -f || true
docker images -q mobyarmkernel:build | xargs docker rmi -f || true
$(MAKE) clean-arch ARCH=arm
$(MAKE) clean-arch ARCH=x86_64

View File

@ -10,7 +10,7 @@ else
cp /Applications/Docker.app/Contents/Resources/moby/initrd.img /Applications/Docker.app/Contents/Resources/moby/initrd.img-
cp /Applications/Docker.app/Contents/Resources/moby/vmlinuz64 /Applications/Docker.app/Contents/Resources/moby/vmlinuz64-
cp alpine/initrd.img /Applications/Docker.app/Contents/Resources/moby/initrd.img
cp alpine/kernel/vmlinuz64 /Applications/Docker.app/Contents/Resources/moby/vmlinuz64
cp alpine/kernel/x86_64/vmlinuz64 /Applications/Docker.app/Contents/Resources/moby/vmlinuz64
fi
killall com.docker.driver.amd64-linux