39 lines
1.6 KiB
Docker
39 lines
1.6 KiB
Docker
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
|