FROM rockylinux:9 RUN set -eux ; \ dnf upgrade -y ; \ dnf -y install --nodocs --setopt=install_weak_deps=False \ gcc \ genisoimage \ git \ make \ patch \ syslinux \ xz-devel \ ; \ dnf -y clean all ; \ rm -rf /var/cache/dnf RUN set -eux ; \ useradd -c "iPXE Builder" -d /build -m build WORKDIR /build USER build COPY --chmod=0644 config.patch embed.ipxe . CMD set -eux ; \ { \ git clone https://github.com/ipxe/ipxe.git ; \ cd ipxe/src ; \ patch -p2 < /build/config.patch ; \ make \ bin/ipxe.iso \ bin/ipxe.usb \ bin/undionly.kpxe \ bin-x86_64-efi/axge--ecm--ncm.iso \ bin-x86_64-efi/axge--ecm--ncm.usb \ EMBEDDED_IMAGE=/build/embed.ipxe ; \ mv bin-x86_64-efi/axge--ecm--ncm.iso bin-x86_64-efi/ipxe.iso ; \ mv bin-x86_64-efi/axge--ecm--ncm.usb bin-x86_64-efi/ipxe.usb ; \ } 1>&2 ; \ tar cf - bin/ipxe.iso bin/ipxe.usb bin/undionly.kpxe \ bin-x86_64-efi/ipxe.iso bin-x86_64-efi/ipxe.usb