diff --git a/alpine/Dockerfile.bios b/alpine/Dockerfile.bios deleted file mode 100644 index 7a78d7361..000000000 --- a/alpine/Dockerfile.bios +++ /dev/null @@ -1,18 +0,0 @@ -# Create a legacy BIOS bootable ISO -FROM mobylinux/alpine-bios:626757290dbb54109514af22108645cae9ea40c3 - -WORKDIR /tmp/iso - -COPY initrd.img ./ -COPY kernel/x86_64/vmlinuz64 ./ -COPY isolinux.cfg ./isolinux/ - -RUN cp /usr/share/syslinux/isolinux.bin ./isolinux/ && \ - cp /usr/share/syslinux/ldlinux.c32 ./isolinux/ - -RUN genisoimage -o ../mobylinux-bios.iso -l -J -R \ - -c isolinux/boot.cat \ - -b isolinux/isolinux.bin \ - -no-emul-boot -boot-load-size 4 -boot-info-table \ - -V MobyLinux . && \ - isohybrid ../mobylinux-bios.iso diff --git a/alpine/Makefile b/alpine/Makefile index f32c12b8b..06523409d 100644 --- a/alpine/Makefile +++ b/alpine/Makefile @@ -39,9 +39,9 @@ mobylinux-efi.iso: Dockerfile.efi initrd.img kernel/x86_64/vmlinuz64 docker run --net=none --log-driver=none --rm --cap-add sys_admin moby-efi:build cat /tmp/efi/mobylinux.efi > mobylinux.efi docker run --net=none --log-driver=none --rm --cap-add sys_admin moby-efi:build cat /tmp/efi/mobylinux-efi.iso > $@ -mobylinux-bios.iso: Dockerfile.bios initrd.img kernel/x86_64/vmlinuz64 isolinux.cfg - tar cf - $^ | docker build -t moby-bios:build -f Dockerfile.bios - - docker run --net=none --log-driver=none --rm moby-bios:build cat /tmp/mobylinux-bios.iso > $@ +mobylinux-bios.iso: initrd.img kernel/x86_64/vmlinuz64 + tar cf - initrd.img -C kernel/x86_64 vmlinuz64 | \ + docker run --net=none --log-driver=none --rm -i mobylinux/alpine-bios:67236852ecf950af0486ac22b0963b404d16c348 >$@ common: initrd.img $(MAKE) -C kernel diff --git a/alpine/base/alpine-bios/Dockerfile b/alpine/base/alpine-bios/Dockerfile index 24c74721a..29fc6220e 100644 --- a/alpine/base/alpine-bios/Dockerfile +++ b/alpine/base/alpine-bios/Dockerfile @@ -2,7 +2,15 @@ FROM alpine:3.4 RUN \ apk update && apk upgrade && \ - apk add \ + apk add --no-cache \ cdrkit \ syslinux \ - && rm -rf /var/cache/apk/* + && true + +WORKDIR /tmp/iso + +COPY isolinux.cfg ./isolinux/ + +COPY make-iso /usr/bin + +CMD [ "/usr/bin/make-iso" ] diff --git a/alpine/base/alpine-bios/Makefile b/alpine/base/alpine-bios/Makefile index bc229e62b..8a628f621 100644 --- a/alpine/base/alpine-bios/Makefile +++ b/alpine/base/alpine-bios/Makefile @@ -7,7 +7,7 @@ default: push hash: docker pull $(BASE) - tar cf - Dockerfile | docker build --no-cache -t $(IMAGE):build - + tar cf - Dockerfile make-iso isolinux.cfg | docker build --no-cache -t $(IMAGE):build - docker run --rm $(IMAGE):build sha1sum /lib/apk/db/installed | sed 's/ .*//' > hash push: hash diff --git a/alpine/isolinux.cfg b/alpine/base/alpine-bios/isolinux.cfg similarity index 100% rename from alpine/isolinux.cfg rename to alpine/base/alpine-bios/isolinux.cfg diff --git a/alpine/base/alpine-bios/make-iso b/alpine/base/alpine-bios/make-iso new file mode 100755 index 000000000..dcfde00c8 --- /dev/null +++ b/alpine/base/alpine-bios/make-iso @@ -0,0 +1,19 @@ +#!/bin/sh + +# input is a tarball of vmlinuz64 and initrd.img on stdin +# output is an iso on stdout + +cp /usr/share/syslinux/isolinux.bin ./isolinux/ +cp /usr/share/syslinux/ldlinux.c32 ./isolinux/ + +tar xf - + +genisoimage -o ../mobylinux-bios.iso -l -J -R \ + -c isolinux/boot.cat \ + -b isolinux/isolinux.bin \ + -no-emul-boot -boot-load-size 4 -boot-info-table \ + -V MobyLinux . + +isohybrid ../mobylinux-bios.iso + +cat ../mobylinux-bios.iso