Files
devbox-images/devbox/flutter-vnc/Dockerfile
T

39 lines
1.6 KiB
Docker
Raw Normal View History

FROM coder-devbox-flutter:latest AS base-default
USER root
# Same XFCE4 + TigerVNC + noVNC stack as devbox/vnc, layered on top of the
# already-built Flutter image instead of base-config directly — reuses the
# Flutter/fvm layer's build cache entirely rather than reinstalling it.
RUN DEBIAN_FRONTEND=noninteractive apt-get update -qq \
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \
xfce4 xfce4-terminal dbus-x11 \
tigervnc-standalone-server tigervnc-common \
novnc websockify \
fonts-dejavu-core \
x11vnc \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/*
# x11vnc is installed only for its `storepasswd` tool — see devbox/vnc's
# Dockerfile for why (no vncpasswd equivalent in this Ubuntu package split).
# x11vnc itself is never run.
# Flutter's own Linux desktop build requirements (per Flutter's official
# docs) — needed so `flutter run -d linux` / `flutter build linux` actually
# work inside this workspace, with the VNC desktop providing a real display
# for the resulting GUI app to run against instead of Xvfb-style headless
# testing.
RUN DEBIAN_FRONTEND=noninteractive apt-get update -qq \
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \
clang cmake ninja-build pkg-config libgtk-3-dev liblzma-dev libstdc++-12-dev \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/*
# Lives outside /home/coder — see vnc-startup.sh header comment.
COPY ./vnc-startup.sh /usr/local/bin/vnc-startup.sh
RUN chmod +x /usr/local/bin/vnc-startup.sh
USER coder
RUN flutter config --enable-linux-desktop