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 FROM justincormack/alpine-qemu
COPY alpine/initrd.img.gz . 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" ] 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 FROM justincormack/alpine-qemu
COPY alpine/initrd-arm.img . COPY alpine/initrd-arm.img .
COPY alpine/kernel/zImage . COPY alpine/kernel/arm/zImage .
COPY alpine/kernel/dtb dtb COPY alpine/kernel/dtb dtb
RUN gzip -9 initrd-arm.img RUN gzip -9 initrd-arm.img

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

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/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 /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/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 fi
killall com.docker.driver.amd64-linux killall com.docker.driver.amd64-linux