FROM fedora:44 ENV TARGET_USER=garrettmills ENV TARGET_UID=1000 ENV TARGET_GID=1000 ENV DOCKER_RUN_DIR=/run/dind COPY k8s.repo /etc/yum.repos.d/k8s.repo COPY startup.bash /usr/sbin/startup.bash COPY startwm-xfce.sh /etc/xrdp/startwm-xfce.sh RUN dnf install -y \ https://mirrors.rpmfusion.org/free/fedora/rpmfusion-free-release-44.noarch.rpm \ https://mirrors.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-44.noarch.rpm \ && dnf install -y \ zip unzip curl tar vim htop fish stow git openssh-clients gnupg2 make nodejs \ procps-ng rsync screen sudo which autojump hostname jq the_silver_searcher wget \ coreutils util-linux openssh-server bind-utils kubectl iproute iputils ffmpeg \ && wget -O /etc/yum.repos.d/kanidm.repo https://download.opensuse.org/repositories/network:/idm/Fedora_44/network:idm.repo \ && wget -O /etc/yum.repos.d/docker-ce.repo https://download.docker.com/linux/fedora/docker-ce.repo \ && dnf install -y kanidm-clients docker-ce-cli docker-buildx-plugin docker-compose-plugin \ xfce4-session xfwm4 xfce4-panel xfdesktop xfce4-settings xfce4-terminal xfce4-appfinder \ xfce4-notifyd xfce4-screenshooter Thunar dbus-x11 dbus-daemon adwaita-icon-theme xdg-utils \ google-noto-sans-fonts google-noto-sans-mono-fonts liberation-fonts \ firefox thunderbird xrdp xorgxrdp openssl fuse3 \ && dnf clean all -y \ && chmod +x /usr/sbin/startup.bash /etc/xrdp/startwm-xfce.sh \ && rm -f /etc/xrdp/cert.pem /etc/xrdp/key.pem /etc/xrdp/rsakeys.ini \ && rm -f /etc/xdg/autostart/xfce-polkit.desktop /etc/xdg/autostart/geoclue-demo-agent.desktop /etc/xdg/autostart/localsearch-3.desktop \ && sed -i \ -e 's|^security_layer=.*|security_layer=tls|' \ -e 's|^certificate=.*|certificate=/etc/xrdp/tls/cert.pem|' \ -e 's|^key_file=.*|key_file=/etc/xrdp/tls/key.pem|' \ -e 's|^autorun=.*|autorun=Xorg|' \ -e '/^\[Xvnc\]/,$d' \ /etc/xrdp/xrdp.ini \ && sed -i \ -e 's|^EnableUserWindowManager=.*|EnableUserWindowManager=false|' \ -e 's|^DefaultWindowManager=.*|DefaultWindowManager=/etc/xrdp/startwm-xfce.sh|' \ -e 's|^AllowRootLogin=.*|AllowRootLogin=false|' \ /etc/xrdp/sesman.ini \ && printf 'PasswordAuthentication no\nKbdInteractiveAuthentication no\n' > /etc/ssh/sshd_config.d/20-no-password.conf EXPOSE 22 3389 CMD ["/usr/sbin/startup.bash"]