change to lxqt

This commit is contained in:
pi-farm committed 2026-10-10 13:35:35 +00:00
1 parent 805834ea64
commit b6d09af925
1 file changed
+75 -79
+75 -79
View File
@@ -1,89 +1,85 @@
ARG BUILD_BASE_IMAGE #!/bin/bash
set -e
FROM ${BUILD_BASE_IMAGE} LDAP_URI=${LDAP_URI:-"ldap://localhost:389"}
LDAP_BASE_DN=${LDAP_BASE_DN:-"dc=example,dc=com"}
LDAP_BIND_DN=${LDAP_BIND_DN:-"cn=admin,dc=example,dc=com"}
LDAP_BIND_PASSWORD=${LDAP_BIND_PASSWORD}
LDAP_SUDO_GROUP=${LDAP_SUDO_GROUP:-"sudo_users"}
SSSD_DEBUG=${SSSD_DEBUG_LEVEL:-0}
ARG BUILD_MAINTAINER echo ">>> Erstelle SSSD Konfiguration..."
ARG BUILD_TZ cat <<EOF > /etc/sssd/sssd.conf
ARG BUILD_APP_NAME [sssd]
ARG BUILD_LANG config_file_version = 2
ARG BUILD_LANGUAGE services = nss, pam, sudo
ARG BUILD_LC_ALL domains = LDAP
ARG BUILD_COUNTRY
LABEL maintainer="${BUILD_MAINTAINER}" [domain/LDAP]
LABEL org.opencontainers.image.title="${BUILD_APP_NAME}" id_provider = ldap
auth_provider = ldap
sudo_provider = ldap
chpass_provider = ldap
ENV TZ=${BUILD_TZ} ldap_uri = ${LDAP_URI}
ENV LANG=${BUILD_LANG} ldap_search_base = ${LDAP_BASE_DN}
ENV LANGUAGE=${BUILD_LANGUAGE} ldap_sudo_search_base = ou=SUDOers,${LDAP_BASE_DN}
ENV LC_ALL=${BUILD_LC_ALL}
ENV COUNTRY=${BUILD_COUNTRY}
ENV DEBIAN_FRONTEND=noninteractive
COPY packages.txt /tmp/packages.txt ldap_default_bind_dn = ${LDAP_BIND_DN}
ldap_default_authtok = ${LDAP_BIND_PASSWORD}
RUN sed -i 's/^Types: deb$/Types: deb deb-src/' /etc/apt/sources.list.d/debian.sources && \ ldap_schema = rfc2307bis
apt-get update && apt-get install -y --no-install-recommends \ ldap_group_member = uniqueMember
$(cat /tmp/packages.txt) \ ldap_auth_disable_tls_never_use_in_production = true
firefox-esr-l10n-${BUILD_COUNTRY} \ ldap_id_use_start_tls = false
thunderbird-l10n-${BUILD_COUNTRY} && \ ldap_tls_reqcert = never
apt-get build-dep -y pulseaudio && \
cd /tmp && \
apt-get source pulseaudio && \
PULSE_DIR=$(find /tmp -maxdepth 1 -type d -name "pulseaudio-*" | head -n 1) && \
cd $PULSE_DIR && \
meson setup build \
-Dman=false \
-Dtests=false \
-Ddoxygen=false && \
cd /tmp && \
git clone https://github.com/neutrinolabs/pulseaudio-module-xrdp.git && \
cd pulseaudio-module-xrdp && \
./bootstrap && \
./configure PULSE_DIR=$PULSE_DIR && \
make && \
make install && \
cd / && \
rm -rf /tmp/pulseaudio-* /tmp/pulseaudio-module-xrdp && \
apt-get remove -y build-essential dpkg-dev meson ninja-build autoconf libtool && \
apt-get autoremove -y && \
rm -rf /var/lib/apt/lists/* && \
echo "${LANG} UTF-8" > /etc/locale.gen && \
locale-gen ${LANG} && \
update-locale LANG=${LANG} LANGUAGE=${LANGUAGE} && \
ln -fs /usr/share/zoneinfo/${TZ} /etc/localtime && \
dpkg-reconfigure -f noninteractive tzdata && \
printf 'XKBMODEL="pc105"\nXKBLAYOUT="%s"\nXKBVARIANT=""\nXKBOPTIONS=""\nBACKSPACE="guess"\n' "${COUNTRY}" > /etc/default/keyboard && \
dpkg-reconfigure -f noninteractive keyboard-configuration && \
rm -rf /var/lib/apt/lists/* /tmp/packages.txt
RUN sed -i '/%users/s/^/# /' /etc/sudoers && \ cache_credentials = true
echo "sudoers: files sss" >> /etc/nsswitch.conf && \ enumerate = false
echo "session required pam_mkhomedir.so skel=/etc/skel/ umask=0077" >> /etc/pam.d/common-session EOF
RUN chmod 440 /etc/sudoers && \ chmod 600 /etc/sssd/sssd.conf
mkdir -p /etc/sssd && chown root:root /etc/sssd && chmod 755 /etc/sssd && \ chown root:root /etc/sssd/sssd.conf
mkdir -p /home && chmod 755 /home && \
chown xrdp:xrdp /etc/xrdp/key.pem /etc/xrdp/cert.pem /etc/xrdp/rsakeys.ini && \
chmod 600 /etc/xrdp/key.pem /etc/xrdp/rsakeys.ini && \
chmod 644 /etc/xrdp/cert.pem && \
echo "LANG=${LANG}" >> /etc/environment && \
echo "LANGUAGE=${LANGUAGE}" >> /etc/environment && \
echo "LC_ALL=${LC_ALL}" >> /etc/environment && \
echo "#!/bin/sh" > /etc/xrdp/startwm.sh && \
echo "export LANG=${LANG}" >> /etc/xrdp/startwm.sh && \
echo "export LANGUAGE=${LANGUAGE}" >> /etc/xrdp/startwm.sh && \
echo "export LC_ALL=${LC_ALL}" >> /etc/xrdp/startwm.sh && \
echo "export XDG_SESSION_TYPE=x11" >> /etc/xrdp/startwm.sh && \
echo "setxkbmap ${COUNTRY}" >> /etc/xrdp/startwm.sh && \
echo "pulseaudio --start" >> /etc/xrdp/startwm.sh && \
echo "pactl load-module module-xrdp-sink.so" >> /etc/xrdp/startwm.sh && \
echo "pactl load-module module-xrdp-source.so" >> /etc/xrdp/startwm.sh && \
echo "exec dbus-launch --exit-with-session startlxqt" >> /etc/xrdp/startwm.sh && \
chmod +x /etc/xrdp/startwm.sh
EXPOSE 3389 echo ">>> Erstelle Sudoers-Regel für Gruppe: ${LDAP_SUDO_GROUP}..."
echo "%${LDAP_SUDO_GROUP} ALL=(ALL) NOPASSWD: ALL" > /etc/sudoers.d/ldap-admins
chmod 0440 /etc/sudoers.d/ldap-admins
COPY entrypoint.sh /entrypoint.sh echo ">>> Erzwinge TLS für xrdp (Guacamole Fix)..."
RUN chmod +x /entrypoint.sh if [ -f /etc/xrdp/xrdp.ini ]; then
CMD ["/entrypoint.sh"] sed -i 's/^security_layer=.*/security_layer=tls/' /etc/xrdp/xrdp.ini
fi
echo ">>> Bereinige alte PID-Dateien und SSSD Cache..."
rm -f /var/run/dbus/pid /run/dbus/dbus.pid /var/run/xrdp/*.pid /var/run/xrdp/xrdp-sesman.pid
rm -f /var/lib/sss/db/*
rm -f /var/lib/sss/mc/*
echo ">>> Starte D-Bus..."
mkdir -p /var/run/dbus /run/dbus
dbus-uuidgen --ensure
dbus-daemon --system --fork
echo ">>> Starte SSSD..."
sssd -D --debug-level=${SSSD_DEBUG}
echo ">>> Starte XRDP..."
xrdp-sesman
xrdp
echo ">>> Leite Logs an Docker weiter..."
mkdir -p /var/log/sssd /var/log/xrdp
touch /var/log/xrdp.log \
/var/log/xrdp-sesman.log \
/var/log/sssd/sssd.log \
/var/log/sssd/sssd_LDAP.log \
/var/log/sssd/sssd_nss.log \
/var/log/sssd/sssd_pam.log
exec tail -F /var/log/xrdp.log \
/var/log/xrdp-sesman.log \
/var/log/sssd/sssd.log \
/var/log/sssd/sssd_LDAP.log \
/var/log/sssd/sssd_nss.log \
/var/log/sssd/sssd_pam.log