# Minimal, reliable dnsmasq image (Hub dnsmasq images vary; build our own so # the version is pinned and the entrypoint is predictable). Config is passed # entirely as --flags from docker-compose.yml. FROM harbor.bitasylum.org/dockerhub/library/alpine:3.20 # binutils (objcopy): the entrypoint extracts the UKI's .cmdline PE section so it # can feed the REAL cmdline to iPXE (Secure Boot OFF chainload) — see entrypoint.sh. RUN apk add --no-cache dnsmasq binutils # fleet-namer: --dhcp-script that assigns creative starship hostnames per MAC, # server-side (keeps the workstation image neutral). COPY'd in root-owned, 0755 # so dnsmasq will execute it. Uses busybox sha256sum/cut/wc — all in the image. COPY fleet-namer /usr/local/bin/fleet-namer RUN chmod 0755 /usr/local/bin/fleet-namer # entrypoint assembles the TFTP root (copies the user's ipxe.efi from the ro # source mount + renders boot.ipxe, which clears the iPXE load options so the # UKI's embedded cmdline survives the chainload — see entrypoint.sh) then execs # dnsmasq with the compose args. COPY entrypoint.sh /usr/local/bin/dnsmasq-entrypoint RUN chmod 0755 /usr/local/bin/dnsmasq-entrypoint ENTRYPOINT ["/usr/local/bin/dnsmasq-entrypoint"]