-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathDockerfile
More file actions
40 lines (32 loc) · 1.41 KB
/
Dockerfile
File metadata and controls
40 lines (32 loc) · 1.41 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
FROM alpine:3.10.2
# Install the necessary packages
RUN apk add --update \
dnsmasq \
wget \
&& rm -rf /var/cache/apk/*
ENV SYSLINUX_VERSION 6.03
ENV TEMP_SYSLINUX_PATH /tmp/syslinux-"$SYSLINUX_VERSION"
WORKDIR /tmp
RUN \
mkdir -p "$TEMP_SYSLINUX_PATH" \
&& wget -q https://www.kernel.org/pub/linux/utils/boot/syslinux/syslinux-"$SYSLINUX_VERSION".tar.gz \
&& tar -xzf syslinux-"$SYSLINUX_VERSION".tar.gz \
&& mkdir -p /var/lib/tftpboot \
&& cp "$TEMP_SYSLINUX_PATH"/bios/core/pxelinux.0 /var/lib/tftpboot/ \
&& cp "$TEMP_SYSLINUX_PATH"/bios/com32/libutil/libutil.c32 /var/lib/tftpboot/ \
&& cp "$TEMP_SYSLINUX_PATH"/bios/com32/elflink/ldlinux/ldlinux.c32 /var/lib/tftpboot/ \
&& cp "$TEMP_SYSLINUX_PATH"/bios/com32/menu/menu.c32 /var/lib/tftpboot/ \
&& rm -rf "$TEMP_SYSLINUX_PATH" \
&& rm /tmp/syslinux-"$SYSLINUX_VERSION".tar.gz
# Download and extract Ubuntu 18.04
RUN wget http://archive.ubuntu.com/ubuntu/dists/bionic-updates/main/installer-amd64/current/images/netboot/netboot.tar.gz \
&& mkdir -p /var/lib/tftpboot/ubuntu \
&& tar xzf netboot.tar.gz -C /var/lib/tftpboot/ubuntu
# Configure PXE and TFTP
COPY tftpboot/ /var/lib/tftpboot
# Configure DNSMASQ
COPY etc/ /etc
# Start dnsmasq. It picks up default configuration from /etc/dnsmasq.conf and
# /etc/default/dnsmasq plus any command line switch
ENTRYPOINT ["dnsmasq", "--no-daemon", "--dhcp-broadcast"]
CMD ["--dhcp-range=192.168.56.2,proxy"]