2024-04-16 23:51:12 +02:00
|
|
|
# syntax=docker/dockerfile:1
|
|
|
|
FROM quay.io/toolbx-images/debian-toolbox:12
|
2023-11-14 10:45:50 +01:00
|
|
|
|
2024-04-16 23:51:12 +02:00
|
|
|
ENV PVE_VERSION=8.1 \
|
2023-11-14 10:45:50 +01:00
|
|
|
SERVICE=pve-docker \
|
|
|
|
DEBIAN_FRONTEND=noninteractive
|
|
|
|
|
|
|
|
# set apt config
|
|
|
|
RUN echo 'APT::Get::Assume-Yes "1";' > /etc/apt/apt.conf.d/00-custom && \
|
|
|
|
echo 'APT::Install-Recommends "0";' >> /etc/apt/apt.conf.d/00-custom && \
|
|
|
|
echo 'APT::Install-Suggests "0";' >> /etc/apt/apt.conf.d/00-custom
|
|
|
|
|
|
|
|
RUN apt-get update && \
|
|
|
|
apt-get dist-upgrade
|
|
|
|
|
2024-04-16 23:51:12 +02:00
|
|
|
RUN \
|
|
|
|
echo "**** install runtime packages ****" && \
|
|
|
|
apt update && apt install -y logrotate neovim netcat-openbsd sudo openssh-server wget systemctl curl gnupg ca-certificates rsyslog net-tools iputils-ping && \
|
|
|
|
echo "**** setup openssh environment ****" && \
|
|
|
|
useradd -m rander && \
|
|
|
|
usermod --shell /bin/bash rander && \
|
|
|
|
rm -rf \
|
|
|
|
/tmp/* \
|
|
|
|
$HOME/.cache
|
2023-11-14 10:45:50 +01:00
|
|
|
|
2024-04-16 23:51:12 +02:00
|
|
|
## proxmox
|
|
|
|
#Add the Proxmox VE repository:
|
2023-11-14 10:45:50 +01:00
|
|
|
RUN wget https://enterprise.proxmox.com/debian/proxmox-release-bookworm.gpg -O /etc/apt/trusted.gpg.d/proxmox-release-bookworm.gpg && \
|
|
|
|
echo "deb http://download.proxmox.com/debian/pve bookworm pve-no-subscription" > /etc/apt/sources.list.d/pve-free.list
|
|
|
|
|
|
|
|
RUN apt-get update && \
|
|
|
|
apt-get install initramfs-tools && \
|
2023-11-14 20:37:21 +01:00
|
|
|
rm -rf /var/lib/apt/lists/* /tmp/* && \
|
2023-11-14 10:45:50 +01:00
|
|
|
echo '#!/bin/bash' > /usr/sbin/update-initramfs && \
|
|
|
|
echo 'exit 0' >> /usr/sbin/update-initramfs && \
|
|
|
|
chmod +x /usr/sbin/update-initramfs
|
|
|
|
|
2023-11-14 20:37:21 +01:00
|
|
|
RUN apt-get update && \
|
|
|
|
apt-get install $(apt-cache depends proxmox-ve|awk '{print $2}'|while read x;do apt-cache depends $x 2>/dev/null|grep Depends|awk '{print $2}'|grep ^[[:alnum:]];done|sort|uniq|egrep -v "pve|proxmox|ifenslave|ifupdown2|qemu-server"|xargs) && \
|
|
|
|
rm -rf /var/lib/apt/lists/* /tmp/*
|
|
|
|
|
2023-11-14 10:45:50 +01:00
|
|
|
# repacked proxmox-ve & pve-manager
|
|
|
|
RUN apt-get update && \
|
|
|
|
rm -f /etc/apt/apt.conf.d/docker-clean && \
|
|
|
|
apt-get install proxmox-ve || echo ok && \
|
|
|
|
PVE_PKG="pve-manager" && \
|
|
|
|
PVE_VER="$(ls /var/cache/apt/archives/${PVE_PKG}_*.deb|awk -F_ '{print $2}')" && \
|
|
|
|
PVE_DEB1="${PVE_PKG}_${PVE_VER}_amd64.deb" && \
|
|
|
|
mkdir /tmp/${PVE_PKG} && \
|
|
|
|
dpkg -X /var/cache/apt/archives/${PVE_PKG}_${PVE_VER}_amd64.deb /tmp/${PVE_PKG}/ && \
|
|
|
|
dpkg -e /var/cache/apt/archives/${PVE_PKG}_${PVE_VER}_amd64.deb /tmp/${PVE_PKG}/DEBIAN && \
|
|
|
|
sed -i "s/ifupdown2 (>= 2.0.1-1+pve8) | ifenslave (>= 2.6),//g" /tmp/${PVE_PKG}/DEBIAN/control && \
|
|
|
|
sed -i "s/ifupdown2 (>= 3.0) | ifenslave (>= 2.6),//g" /tmp/${PVE_PKG}/DEBIAN/control && \
|
|
|
|
dpkg-deb -Zxz -b /tmp/${PVE_PKG}/ /tmp && \
|
|
|
|
PVE_PKG="proxmox-ve" && \
|
|
|
|
PVE_VER="$(ls /var/cache/apt/archives/${PVE_PKG}_*.deb|awk -F_ '{print $2}')" && \
|
|
|
|
PVE_DEB2="${PVE_PKG}_${PVE_VER}_all.deb" && \
|
|
|
|
mkdir /tmp/${PVE_PKG} && \
|
|
|
|
dpkg -X /var/cache/apt/archives/${PVE_PKG}_${PVE_VER}_all.deb /tmp/${PVE_PKG}/ && \
|
|
|
|
dpkg -e /var/cache/apt/archives/${PVE_PKG}_${PVE_VER}_all.deb /tmp/${PVE_PKG}/DEBIAN && \
|
|
|
|
sed -i "s/pve-kernel-helper,//g" /tmp/${PVE_PKG}/DEBIAN/control && \
|
|
|
|
sed -i "s/pve-kernel-5.15,//g" /tmp/${PVE_PKG}/DEBIAN/control && \
|
|
|
|
sed -i "s/proxmox-default-kernel, //g" /tmp/${PVE_PKG}/DEBIAN/control && \
|
|
|
|
dpkg-deb -Zxz -b /tmp/${PVE_PKG}/ /tmp && \
|
|
|
|
dpkg -i /tmp/${PVE_DEB1} && \
|
|
|
|
dpkg -i /tmp/${PVE_DEB2} && \
|
|
|
|
echo '#!/bin/sh' > /etc/kernel/postrm.d/zz-proxmox-boot && \
|
|
|
|
echo 'exit 0' >> /etc/kernel/postrm.d/zz-proxmox-boot && \
|
2023-11-14 20:37:21 +01:00
|
|
|
apt-mark hold proxmox-ve && \
|
|
|
|
apt-mark hold pve-manager && \
|
|
|
|
rm -f /etc/apt/apt.conf.d/*pve* /etc/kernel/postinst.d/* && \
|
|
|
|
echo '#!/bin/sh' > /var/lib/dpkg/info/ifupdown2.postinst && \
|
|
|
|
echo 'exit 0' >> /var/lib/dpkg/info/ifupdown2.postinst && \
|
2023-11-14 10:45:50 +01:00
|
|
|
apt-get -f install && \
|
|
|
|
apt-get autoremove --purge && \
|
2023-11-14 20:37:21 +01:00
|
|
|
apt-get purge ifupdown2 && \
|
|
|
|
apt-get install proxmox-backup-restore-image && \
|
2023-11-14 10:45:50 +01:00
|
|
|
rm -rf /var/lib/apt/lists/* /tmp/* && \
|
|
|
|
rm -f /etc/apt/sources.list.d/pve-enterprise.list
|
|
|
|
|
2023-11-14 17:33:35 +01:00
|
|
|
#set (temporary) password for root
|
2023-11-14 10:45:50 +01:00
|
|
|
RUN echo "root:root"|chpasswd
|
|
|
|
|
2024-04-16 23:51:12 +02:00
|
|
|
RUN systemctl enable pvenetcommit.service pve-firewall
|
|
|
|
|
2024-04-17 02:12:02 +02:00
|
|
|
RUN mkdir -p /var/lib/dhcp && apt update && apt install ifupdown2 -y || true && mkdir -p /run/sshd && systemctl enable networking
|
2024-04-16 23:51:12 +02:00
|
|
|
|
|
|
|
# add local files
|
|
|
|
EXPOSE 2222
|
|
|
|
EXPOSE 8006
|
|
|
|
|
2023-11-14 10:45:50 +01:00
|
|
|
COPY entrypoint.sh /
|
|
|
|
|
2024-04-16 23:51:12 +02:00
|
|
|
RUN chmod +x /entrypoint.sh
|
2023-11-14 10:45:50 +01:00
|
|
|
|
2024-04-16 23:51:12 +02:00
|
|
|
RUN mkdir -p /run/ssh systemctl enable ssh
|
2023-11-14 10:45:50 +01:00
|
|
|
|
|
|
|
#use setup.sh to start proxmox service
|
|
|
|
STOPSIGNAL SIGINT
|
|
|
|
ENTRYPOINT [ "/entrypoint.sh" ]
|
2024-04-16 23:51:12 +02:00
|
|
|
VOLUME /config
|
2023-11-14 10:45:50 +01:00
|
|
|
CMD [ "/lib/systemd/systemd", "log-level=info", "unit=sysinit.target"]
|