1# syntax=docker/dockerfile:1 2FROM --platform=linux/amd64 alpine:3.18 3LABEL maintainer.name="The Xen Project" \ 4 maintainer.email="xen-devel@lists.xenproject.org" 5 6ENV USER root 7 8RUN mkdir /build 9WORKDIR /build 10 11RUN \ 12 # apk 13 apk update && \ 14 \ 15 # xen runtime deps 16 apk add musl && \ 17 apk add libgcc && \ 18 apk add openrc && \ 19 apk add busybox && \ 20 apk add sudo && \ 21 apk add dbus && \ 22 apk add bash && \ 23 apk add python3 && \ 24 apk add zlib && \ 25 apk add ncurses && \ 26 apk add yajl && \ 27 apk add libaio && \ 28 apk add xz && \ 29 apk add util-linux && \ 30 apk add argp-standalone && \ 31 apk add libfdt && \ 32 apk add glib && \ 33 apk add pixman && \ 34 apk add curl && \ 35 apk add udev && \ 36 apk add pciutils && \ 37 apk add libelf && \ 38 \ 39 # Xen 40 cd / && \ 41 # Minimal ramdisk environment in case of cpio output 42 rc-update add udev && \ 43 rc-update add udev-trigger && \ 44 rc-update add udev-settle && \ 45 rc-update add loopback sysinit && \ 46 rc-update add bootmisc boot && \ 47 rc-update add devfs sysinit && \ 48 rc-update add dmesg sysinit && \ 49 rc-update add hostname boot && \ 50 rc-update add hwclock boot && \ 51 rc-update add hwdrivers sysinit && \ 52 rc-update add modules boot && \ 53 rc-update add killprocs shutdown && \ 54 rc-update add mount-ro shutdown && \ 55 rc-update add savecache shutdown && \ 56 rc-update add local default && \ 57 cp -a /sbin/init /init && \ 58 echo "ttyS0" >> /etc/securetty && \ 59 echo "hvc0" >> /etc/securetty && \ 60 echo "ttyS0::respawn:/sbin/getty -L ttyS0 115200 vt100" >> /etc/inittab && \ 61 echo "hvc0::respawn:/sbin/getty -L hvc0 115200 vt100" >> /etc/inittab && \ 62 echo > /etc/modules && \ 63 passwd -d "root" root && \ 64 \ 65 # Create rootfs 66 cd / && \ 67 tar cvzf /initrd.tar.gz bin dev etc home init lib mnt opt root sbin usr var 68