e15a05d676050acf4c4f93d489e16024efd28d3d
[csit.git] / fdio.infra.pxe / docker-dnsmasq / Dockerfile
1 FROM ubuntu:22.04 as ubuntu_jammy
2
3 LABEL Description="ubuntu intermediate image"
4 LABEL Version="2.0"
5
6 RUN apt update \
7  && apt install -y wget genisoimage syslinux-common \
8  && mkdir -p /var/lib/tftpboot/grub \
9  && mkdir -p /var/lib/tftpboot/casper/ubuntu-focal-amd64/ \
10  && mkdir -p /var/lib/tftpboot/casper/ubuntu-focal-arm64/ \
11  && mkdir -p /var/lib/tftpboot/casper/ubuntu-jammy-amd64/ \
12  && mkdir -p /var/lib/tftpboot/casper/ubuntu-jammy-arm64/
13
14 ENV ISO_FOCAL_AMD64 https://releases.ubuntu.com/20.04.4/ubuntu-20.04.4-live-server-amd64.iso
15 ENV ISO_FOCAL_ARM64 https://cdimage.ubuntu.com/releases/20.04/release/ubuntu-20.04.4-live-server-arm64.iso
16 ENV EFI_FOCAL_AMD64 http://archive.ubuntu.com/ubuntu/dists/focal/main/uefi/grub2-amd64/current/grubnetx64.efi.signed
17 ENV EFI_FOCAL_ARM64 http://ports.ubuntu.com/ubuntu-ports/dists/focal/main/uefi/grub2-arm64/current/grubnetaa64.efi.signed
18
19 ENV ISO_JAMMY_AMD64 https://releases.ubuntu.com/22.04/ubuntu-22.04-live-server-amd64.iso
20 ENV ISO_JAMMY_ARM64 https://cdimage.ubuntu.com/releases/22.04/release/ubuntu-22.04-live-server-arm64.iso
21 ENV EFI_JAMMY_AMD64 http://archive.ubuntu.com/ubuntu/dists/focal/main/uefi/grub2-amd64/current/grubnetx64.efi.signed
22 ENV EFI_JAMMY_ARM64 http://ports.ubuntu.com/ubuntu-ports/dists/focal/main/uefi/grub2-arm64/current/grubnetaa64.efi.signed
23
24 RUN echo "Preparing Grub EFI Binary" \
25  && wget $EFI_JAMMY_AMD64 -O /var/lib/tftpboot/grub/grubnetx64.efi.signed \
26  && wget $EFI_JAMMY_ARM64 -O /var/lib/tftpboot/grub/grubnetaa64.efi.signed
27
28 RUN echo "Preparing Casper Kernel" \
29  && wget $ISO_FOCAL_AMD64 -O /ubuntu-20.04.4-live-server-amd64.iso \
30  && isoinfo -i /ubuntu-20.04.4-live-server-amd64.iso -x "/CASPER/INITRD.;1" > /var/lib/tftpboot/casper/ubuntu-focal-amd64/initrd \
31  && isoinfo -i /ubuntu-20.04.4-live-server-amd64.iso -x "/CASPER/VMLINUZ.;1" > /var/lib/tftpboot/casper/ubuntu-focal-amd64/vmlinuz\
32  && wget $ISO_FOCAL_ARM64 -O /ubuntu-20.04.4-live-server-arm64.iso \
33  && isoinfo -i /ubuntu-20.04.4-live-server-arm64.iso -x "/CASPER/INITRD.;1" > /var/lib/tftpboot/casper/ubuntu-focal-arm64/initrd \
34  && isoinfo -i /ubuntu-20.04.4-live-server-arm64.iso -x "/CASPER/VMLINUZ.;1" > /var/lib/tftpboot/casper/ubuntu-focal-arm64/vmlinuz \
35  && wget $ISO_JAMMY_AMD64 -O /ubuntu-22.04-live-server-amd64.iso \
36  && isoinfo -i /ubuntu-22.04-live-server-amd64.iso -x "/CASPER/INITRD.;1" > /var/lib/tftpboot/casper/ubuntu-jammy-amd64/initrd \
37  && isoinfo -i /ubuntu-22.04-live-server-amd64.iso -x "/CASPER/VMLINUZ.;1" > /var/lib/tftpboot/casper/ubuntu-jammy-amd64/vmlinuz\
38  && wget $ISO_JAMMY_ARM64 -O /ubuntu-22.04-live-server-arm64.iso \
39  && isoinfo -i /ubuntu-22.04-live-server-arm64.iso -x "/CASPER/INITRD.;1" > /var/lib/tftpboot/casper/ubuntu-jammy-arm64/initrd \
40  && isoinfo -i /ubuntu-22.04-live-server-arm64.iso -x "/CASPER/VMLINUZ.;1" > /var/lib/tftpboot/casper/ubuntu-jammy-arm64/vmlinuz
41
42 FROM alpine
43
44 LABEL Description="dnsmasq service image"
45 LABEL Version="2.0"
46
47 RUN apk add --update --no-cache dnsmasq \
48  && rm -rf /var/cache/apk/*
49
50 # Extract installer from previous image.
51 COPY --from=ubuntu_jammy /var/lib/tftpboot /var/lib/tftpboot
52
53 # Configure PXE.
54 COPY tftpboot/ /var/lib/tftpboot/
55
56 # Configure DNSMASQ.
57 COPY etc/ /etc/
58
59 # Start dnsmasq. It picks up default configuration from /etc/dnsmasq.conf and
60 # /etc/default/dnsmasq plus any command line switch
61 ENTRYPOINT ["sh","-c","dnsmasq","--interface=$E_INT","--listen-address=$E_ADD"]