Add hyperkit build

Useful for local performance tests

Fix #443

Signed-off-by: Justin Cormack <justin.cormack@docker.com>
This commit is contained in:
Justin Cormack 2016-10-31 15:33:30 +00:00
parent 805a5fa48a
commit b6c6ec8905
3 changed files with 34 additions and 0 deletions

2
.gitignore vendored
View File

@ -1,2 +1,4 @@
test.log test.log
*.swp *.swp
/hyperkit.git
/disk.img

View File

@ -20,6 +20,13 @@ qemu-iso: Dockerfile.qemuiso alpine/mobylinux-bios.iso
tar cf - $^ | docker build -f Dockerfile.qemuiso -t mobyqemuiso:build - tar cf - $^ | docker build -f Dockerfile.qemuiso -t mobyqemuiso:build -
docker run -it --rm mobyqemuiso:build docker run -it --rm mobyqemuiso:build
hyperkit.git:
git clone https://github.com/docker/hyperkit.git hyperkit.git
hyperkit: hyperkit.git hyperkit.sh alpine/initrd.img alpine/kernel/x86_64/vmlinuz64
cd hyperkit.git && make
sh hyperkit.sh
test: Dockerfile.test alpine/initrd.img alpine/kernel/x86_64/vmlinuz64 test: Dockerfile.test alpine/initrd.img alpine/kernel/x86_64/vmlinuz64
$(MAKE) -C alpine $(MAKE) -C alpine
BUILD=$$( tar cf - $^ | docker build -f Dockerfile.test -q - ) && \ BUILD=$$( tar cf - $^ | docker build -f Dockerfile.test -q - ) && \
@ -46,3 +53,4 @@ endif
clean: clean:
$(MAKE) -C alpine clean $(MAKE) -C alpine clean
rm -rf hyperkit.git disk.img

24
hyperkit.sh Executable file
View File

@ -0,0 +1,24 @@
#!/bin/sh
set -e
KERNEL="alpine/kernel/x86_64/vmlinuz64"
INITRD="alpine/initrd.img"
CMDLINE="earlyprintk=serial console=ttyS0"
[ -f disk.img ] || dd if=/dev/zero of=disk.img bs=1m count=100
MEM="-m 1G"
SMP="-c 1"
NET=""
if (( $EUID != 0 )); then
printf "Need to run as root to get networking!\n\n"
exit 1
fi
NET="-s 2:0,virtio-net"
IMG_HDD="-s 4,virtio-blk,disk.img"
PCI_DEV="-s 0:0,hostbridge -s 31,lpc"
RND="-s 5,virtio-rnd"
LPC_DEV="-l com1,stdio"
hyperkit.git/build/com.docker.hyperkit -A $MEM $SMP $PCI_DEV $LPC_DEV $NET $IMG_HDD $RND -u -f kexec,$KERNEL,$INITRD,"$CMDLINE"