mirror of
https://github.com/linka-cloud/d2vm.git
synced 2024-11-13 03:26:25 +00:00
71 lines
1.7 KiB
Docker
71 lines
1.7 KiB
Docker
FROM {{ .Image }}
|
|
|
|
USER root
|
|
|
|
RUN ARCH="$([ "$(uname -m)" = "x86_64" ] && echo amd64 || echo arm64)"; \
|
|
apt-get update && \
|
|
DEBIAN_FRONTEND=noninteractive apt-get -y install --no-install-recommends \
|
|
linux-image-virtual \
|
|
initramfs-tools \
|
|
systemd-sysv \
|
|
systemd \
|
|
{{- if .Grub }}
|
|
grub-common \
|
|
grub2-common \
|
|
{{- end }}
|
|
{{- if .GrubBIOS }}
|
|
grub-pc-bin \
|
|
{{- end }}
|
|
{{- if .GrubEFI }}
|
|
grub-efi-${ARCH}-bin \
|
|
{{- end }}
|
|
dbus \
|
|
isc-dhcp-client \
|
|
iproute2 \
|
|
iputils-ping && \
|
|
find /boot -type l -exec rm {} \;
|
|
|
|
{{ if gt .Release.VersionID "16.04" }}
|
|
RUN systemctl preset-all
|
|
{{ end }}
|
|
|
|
{{ if .Password }}RUN echo "root:{{ .Password }}" | chpasswd {{ end }}
|
|
|
|
{{ if eq .NetworkManager "netplan" }}
|
|
RUN apt install -y netplan.io
|
|
RUN mkdir -p /etc/netplan && printf '\
|
|
network:\n\
|
|
version: 2\n\
|
|
renderer: networkd\n\
|
|
ethernets:\n\
|
|
eth0:\n\
|
|
dhcp4: true\n\
|
|
dhcp-identifier: mac\n\
|
|
nameservers:\n\
|
|
addresses:\n\
|
|
- 8.8.8.8\n\
|
|
- 8.8.4.4\n\
|
|
' > /etc/netplan/00-netcfg.yaml
|
|
{{ else if eq .NetworkManager "ifupdown"}}
|
|
RUN if [ -z "$(apt-cache madison ifupdown-ng 2> /dev/nul)" ]; then apt install -y ifupdown; else apt install -y ifupdown-ng; fi
|
|
RUN mkdir -p /etc/network && printf '\
|
|
auto eth0\n\
|
|
allow-hotplug eth0\n\
|
|
iface eth0 inet dhcp\n\
|
|
' > /etc/network/interfaces
|
|
{{ end }}
|
|
|
|
{{- if .Luks }}
|
|
RUN DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends cryptsetup-initramfs && \
|
|
update-initramfs -u -v
|
|
{{- end }}
|
|
|
|
# needs to be after update-initramfs
|
|
{{- if not .Grub }}
|
|
RUN mv $(find /boot -name 'vmlinuz-*') /boot/vmlinuz && \
|
|
mv $(find /boot -name 'initrd.img-*') /boot/initrd.img
|
|
{{- end }}
|
|
|
|
RUN apt-get clean && \
|
|
rm -rf /var/lib/apt/lists/*
|