boot.foo.sh/Dockerfile

46 lines
1.3 KiB
Docker

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-x86_64-pcbios/ipxe.iso \
bin-x86_64-pcbios/ipxe.usb \
bin-x86_64-pcbios/undionly.kpxe \
bin-x86_64-efi/axge--ecm--ncm.iso \
bin-x86_64-efi/axge--ecm--ncm.usb \
bin-x86_64-efi/ipxe.efi \
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-x86_64-pcbios/ipxe.iso \
bin-x86_64-pcbios/ipxe.usb \
bin-x86_64-pcbios/undionly.kpxe \
bin-x86_64-efi/ipxe.efi \
bin-x86_64-efi/ipxe.iso \
bin-x86_64-efi/ipxe.usb