This image runs OrcaSlicer in a browser via noVNC with TurboVNC + VirtualGL and NVIDIA GPU acceleration.
The container is intentionally minimal:
- Ubuntu 24.04 NVIDIA CUDA runtime base
- TurboVNC + noVNC
- Openbox (tiny WM, no full LXDE desktop)
- OrcaSlicer AppImage extracted at build time
docker compose up -ddocker compose -f docker-compose.build.yml up -d --buildTo pin a specific OrcaSlicer release while building:
ORCASLICER_VERSION=v2.3.1 docker compose -f docker-compose.build.yml up -d --buildTo build with broad codec support and extra debug desktop tools:
MEDIA_PROFILE=broad DEBUG_TOOLS=true docker compose -f docker-compose.build.yml up -d --buildFor local-only OrcaSlicer v2.3.2 compatibility testing under noVNC, keep defaults unchanged and inject env vars only for the run you want to test:
ORCASLICER_VERSION=v2.3.2 docker compose -f docker-compose.build.yml up -d --buildDefault run with the recommended X11/Openbox session hints:
docker compose -f docker-compose.build.yml up -dExplicitly force no compatibility profile:
ORCA_COMPAT_PROFILE=none docker compose -f docker-compose.build.yml up -dProfile 1: X11/Openbox session hints only:
ORCA_COMPAT_PROFILE=x11-hints docker compose -f docker-compose.build.yml up -dProfile 2: X11/Openbox hints plus optional local D-Bus passthrough:
ORCA_COMPAT_PROFILE=x11-hints-dbus ORCA_DBUS_SESSION_BUS_ADDRESS="${DBUS_SESSION_BUS_ADDRESS:-}" docker compose -f docker-compose.build.yml up -dSet ENABLEHWGPU=true to run OrcaSlicer through vglrun.
You can verify GPU usage on the host:
nvidia-smi -lExpected process (when launched): /slic3r/squashfs-root/bin/orca-slicer
DISPLAY=:0PUID=1000PGID=1000SUPD_LOGLEVEL=INFOENABLEHWGPU=falseRECURSIVE_CHOWN=false(truerecursively fixes ownership on/slic3r,/home/slic3r,/configs, and/printsat startup)VGL_DISPLAY=eglNOVNC_PORT=8080VNC_PORT=5900VNC_RESOLUTION=1280x800VNC_PASSWORD=ORCA_GTK_THEME=Adwaita:dark(default dark theme, override if needed)ORCA_COMPAT_PROFILE=x11-hints(none,x11-hints, orx11-hints-dbus; defaults to the recommended X11/Openbox hints)ORCA_XDG_SESSION_TYPE=ORCA_XDG_CURRENT_DESKTOP=ORCA_XDG_SESSION_DESKTOP=ORCA_GTK_CSD=ORCA_GDK_DISABLE=ORCA_DBUS_SESSION_BUS_ADDRESS=
CUDA_IMAGE_TAG=13.0.1-runtime-ubuntu24.04ORCASLICER_VERSION=latestVIRTUALGL_VERSION=3.1.1-20240228TURBOVNC_VERSION=3.1.1-20240127MEDIA_PROFILE=minimal(minimalorbroad)DEBUG_TOOLS=false(trueaddsdbus-x11,xdg-utils,xterm)
The Dockerfile is optimized for faster rebuilds:
- Multi-stage build (
runtime-base,orca-fetch,final) - BuildKit apt cache mounts
- Orca download/extract isolated to a version-keyed stage
.dockerignoreexcludes large local folders (data,prints,.git)
- Openbox is used only for focus/placement.
- OrcaSlicer runs as the main app process under
supervisord. - Openbox uses its default configuration; no custom home-directory
.configtree is seeded by the image.