diff --git a/docker-compose.yml b/docker-compose.yml index 69f4389..f01a05f 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -14,6 +14,7 @@ services: - ${PWD}/media:/media/ - /boot:/boot - /var/lib/nfs:/var/lib/nfs + - /run/rpcbind:/run/rpcbind container_name: pxe-container image: pxe-image diff --git a/dockerfile b/dockerfile index 04f98c9..f3f435d 100644 --- a/dockerfile +++ b/dockerfile @@ -1,5 +1,5 @@ -FROM debian:11-slim -RUN apt-get update && apt-get upgrade -y && apt-get autoremove -y && apt-get install unzip fdisk util-linux nano xz-utils wget systemctl sudo git tcpdump zstd -y +FROM debian:12-slim +RUN apt-get update && apt-get install unzip fdisk util-linux nano xz-utils wget systemctl sudo git tcpdump zstd nfs-kernel-server nfs-common rpcbind -y ADD https://github.com/just-containers/s6-overlay/releases/download/v3.1.6.0/s6-overlay-noarch.tar.xz /tmp ADD https://github.com/just-containers/s6-overlay/releases/download/v3.1.6.0/s6-overlay-aarch64.tar.xz /tmp RUN tar -C / -Jxpf /tmp/s6-overlay-aarch64.tar.xz && tar -C / -Jxpf /tmp/s6-overlay-noarch.tar.xz && mkdir /app && mkdir /app/RPi-PXE-Server @@ -9,6 +9,7 @@ VOLUME /app/RPi-PXE-Server VOLUME /srv VOLUME /etc/samba VOLUME /boot -RUN rm -rf /temp/* && rm -rf /var/lib/apt/lists/* +RUN rm -rf /temp/* && rm -rf /var/lib/apt/lists/* && mkdir -p /run/rpcbind /run/sendsigs.omit.d/ +RUN rm -rf /run/* /var/run/* WORKDIR /app/RPi-PXE-Server ENTRYPOINT [ "/init" ] diff --git a/init-script.sh b/init-script.sh index b98e2bf..e541b4a 100644 --- a/init-script.sh +++ b/init-script.sh @@ -1,5 +1,20 @@ #!/bin/bash +#systemctl start chrony dnsmasq lighttpd nfs-mountd nfs-server nfs-kernel-server nmbd rsync samba-ad-dc smbd +##systemctl stop rpcbind +#systemctl start rpcbind && systemctl start nfs-kernel-server && rpc.mountd +#systemctl status chrony dnsmasq lighttpd nfs-mountd nfs-server nfs-kernel-server nmbd rsync samba-ad-dc smbd + +# 1. Zuerst zwingend rpcbind starten +systemctl start rpcbind + +# Kurze Pause, damit der Portmapper-Dienst fully up & running ist +sleep 1 + +# 2. Erst danach NFS-Dienste und den Rest starten systemctl start chrony dnsmasq lighttpd nfs-mountd nfs-server nfs-kernel-server nmbd rsync samba-ad-dc smbd -#systemctl stop rpcbind -systemctl start rpcbind && systemctl start nfs-kernel-server && rpc.mountd -systemctl status chrony dnsmasq lighttpd nfs-mountd nfs-server nfs-kernel-server nmbd rsync samba-ad-dc smbd + +# 3. Optional: Falls rpc.mountd separat benötigt wird +rpc.mountd 2>/dev/null || true + +# 4. Status aller Dienste prüfen +systemctl status rpcbind chrony dnsmasq lighttpd nfs-mountd nfs-server nfs-kernel-server nmbd rsync samba-ad-dc smbd diff --git a/root/.DS_Store b/root/.DS_Store deleted file mode 100755 index 1e595af..0000000 Binary files a/root/.DS_Store and /dev/null differ diff --git a/root/etc/cont-init.d/99-start-pxe-services.sh b/root/etc/cont-init.d/99-start-pxe-services.sh old mode 100644 new mode 100755 index eb32cde..51c4d01 --- a/root/etc/cont-init.d/99-start-pxe-services.sh +++ b/root/etc/cont-init.d/99-start-pxe-services.sh @@ -5,8 +5,18 @@ echo "Starte PXE-relevante Dienste via systemctl-shim..." # Fix für rpcbind: Fehlendes Verzeichnis erstellen mkdir -p /run/sendsigs.omit.d -systemctl start rpcbind -systemctl start nfs-kernel-server +# rpcbind läuft auf dem Host (network_mode: host) +#systemctl start rpcbind + +# NFS: +# Das Debian-Init-Skript verweigert den Start, weil es den +# hostseitigen rpcbind-Prozess im Container nicht erkennen kann. +# nfsd daher direkt starten. +echo "Starte NFS kernel daemon..." +exportfs -ra +rpc.nfsd 8 + +echo "Starte PXE-Dienste..." systemctl start dnsmasq systemctl start lighttpd systemctl start smbd