|
@@ -0,0 +1,42 @@
|
|
|
+FROM i386/alpine:3.18.6
|
|
|
+
|
|
|
+ENV KERNEL=lts
|
|
|
+ENV HOSTNAME=localhost
|
|
|
+ENV ROOT_PASSWORD='root'
|
|
|
+ENV ADDPKGS=''
|
|
|
+
|
|
|
+RUN apk add openrc \
|
|
|
+ alpine-base \
|
|
|
+ agetty \
|
|
|
+ alpine-conf \
|
|
|
+ $ADDPKGS
|
|
|
+
|
|
|
+# Install mkinitfs from edge (todo: remove this when 3.19+ has worked properly with 9pfs)
|
|
|
+RUN apk add mkinitfs --no-cache --allow-untrusted --repository https://dl-cdn.alpinelinux.org/alpine/edge/main/
|
|
|
+
|
|
|
+RUN if [ "$KERNEL" == "lts" ]; then \
|
|
|
+ apk add linux-lts \
|
|
|
+ linux-firmware-none \
|
|
|
+ linux-firmware-sb16; \
|
|
|
+else \
|
|
|
+ apk add linux-$KERNEL; \
|
|
|
+fi
|
|
|
+
|
|
|
+RUN sed -i 's/getty 38400 tty1/agetty --autologin root tty1 linux/' /etc/inittab && \
|
|
|
+ echo "root:$ROOT_PASSWORD" | chpasswd
|
|
|
+
|
|
|
+RUN setup-hostname $HOSTNAME
|
|
|
+
|
|
|
+# Adding networking.sh script (works only on lts kernel yet)
|
|
|
+RUN if [ "$KERNEL" == "lts" ]; then \
|
|
|
+ echo -e "rmmod ne2k-pci && modprobe ne2k-pci\nhwclock -s\nsetup-interfaces -a -r" > /root/networking.sh && \
|
|
|
+ chmod +x /root/networking.sh; \
|
|
|
+fi
|
|
|
+
|
|
|
+# https://wiki.alpinelinux.org/wiki/Alpine_Linux_in_a_chroot#Preparing_init_services
|
|
|
+RUN for i in devfs dmesg mdev hwdrivers; do rc-update add $i sysinit; done
|
|
|
+RUN for i in hwclock modules sysctl hostname syslog bootmisc; do rc-update add $i boot; done
|
|
|
+RUN rc-update add killprocs shutdown
|
|
|
+
|
|
|
+# Generate initramfs with 9p modules
|
|
|
+RUN mkinitfs -F "ata base ide scsi virtio ext4 9p" $(cat /usr/share/kernel/$KERNEL/kernel.release)
|