diff --git a/Dockerfile b/Dockerfile index 159250f..0bb0abb 100644 --- a/Dockerfile +++ b/Dockerfile @@ -3,25 +3,33 @@ FROM debian:buster RUN apt update RUN apt install -y make debootstrap supervisor isc-dhcp-server tftpd-hpa busybox squashfs-tools -# Linux image +# Builds Linux for cloning image. The Makefile in linux/ would download base +# debian system to linux/build/cache itself, but to speed up rebuilding this +# Docker container the download is run separately to avoid repeating it in +# future builds. ADD linux /linux RUN mkdir -p linux/build && debootstrap buster linux/build/cache RUN cd /linux && make -# Files to be served +# Creates and populates /tftpboot directory. Files stored there will be served +# by TFTP and HTTP (on port 8014). ADD src/tftpboot /tftpboot RUN cp /linux/build/rootfs/initrd.img /tftpboot/initrd.img && \ cp /linux/build/rootfs/vmlinuz /tftpboot/vmlinuz && \ mksquashfs /linux/build/rootfs /tftpboot/root.squashfs -# Supervisor +# Supervisor's config COPY src/supervisor.conf /supervisor.conf -# DHCP server +# DHCP server config RUN mkdir -p /var/lib/dhcp && touch /var/lib/dhcp/dhcpd.leases COPY src/dhcpd.conf /etc/dhcp/dhcpd.conf +# The run.sh script setups networking and starts supervisor. COPY src/run.sh /run.sh RUN chmod +x /run.sh + +# Interface on which the server will be listening. Set with `-e INTERFACE=eth1` ENV INTERFACE=eth0 + CMD ["/run.sh"]