petersweb-infra/nixos/vnc-desktop/Dockerfile
2026-05-30 03:05:36 -08:00

46 lines
1.7 KiB
Docker

FROM ubuntu:24.04
ENV DEBIAN_FRONTEND=noninteractive
# Set up Mozilla apt repo before installing KDE so the priority-1000 pin is
# already in place when kde-plasma-desktop resolves Firefox — otherwise apt
# installs Ubuntu's snap stub first and the real Firefox never displaces it.
RUN apt-get update && apt-get install -y --no-install-recommends wget ca-certificates gnupg \
&& wget -qO- https://packages.mozilla.org/apt/repo-signing-key.gpg \
| gpg --dearmor > /usr/share/keyrings/packages.mozilla.org.gpg \
&& echo "deb [signed-by=/usr/share/keyrings/packages.mozilla.org.gpg] https://packages.mozilla.org/apt mozilla main" \
> /etc/apt/sources.list.d/mozilla.list \
&& printf 'Package: *\nPin: origin packages.mozilla.org\nPin-Priority: 1000\n' \
> /etc/apt/preferences.d/mozilla \
&& rm -rf /var/lib/apt/lists/*
RUN apt-get update && apt-get install -y \
tigervnc-standalone-server \
tigervnc-common \
novnc \
python3-websockify \
kde-plasma-desktop \
konsole \
x11-utils \
xfonts-base \
dbus-x11 \
openssh-client \
curl \
firefox \
&& rm -rf /var/lib/apt/lists/*
# Remove Bluetooth stack — obexd gets activated in a tight loop by kded5
# inside the container (no BT hardware), which exhausts the process limit.
RUN apt-get purge -y --auto-remove bluez bluez-obexd 2>/dev/null || true; \
rm -f /usr/share/dbus-1/services/org.bluez.obex.service \
/usr/share/dbus-1/system-services/org.bluez.service
COPY discover-logging/ /discover-logging/
RUN chmod +x /discover-logging/build.sh && /discover-logging/build.sh
COPY start.sh /start.sh
RUN chmod +x /start.sh
EXPOSE 6080
CMD ["/start.sh"]