FROM alpine:3.21 RUN apk add --no-cache \ xrdp \ xorgxrdp \ openbox \ xorg-server \ xf86-video-dummy \ font-noto \ dbus \ firefox \ mesa-dri-gallium \ ttf-freefont \ openssl \ && rm -rf /var/cache/apk/* # Create rdpuser RUN adduser -D -s /bin/sh rdpuser \ && adduser rdpuser wheel # Configure xrdp to use Xorg RUN sed -i 's/^#\?security_layer=.*/security_layer=tls/' /etc/xrdp/xrdp.ini \ && sed -i 's/^#\?crypt_level=.*/crypt_level=high/' /etc/xrdp/xrdp.ini \ && sed -i 's|^#\?param=Xorg|param=Xorg|' /etc/xrdp/sesman.ini # Xorg wrapper for xrdp sessions COPY config/startwm.sh /etc/xrdp/startwm.sh RUN chmod +x /etc/xrdp/startwm.sh # Openbox config for rdpuser COPY config/openbox/ /home/rdpuser/.config/openbox/ RUN chown -R rdpuser:rdpuser /home/rdpuser COPY entrypoint.sh /entrypoint.sh EXPOSE 3389 ENTRYPOINT ["/entrypoint.sh"]