Build/debug Chromium from a browser tab: VS Code+clangd, noVNC GUI desktop, debuggers, Claude Code.
342
Build, run, debug and compare Chromium from a browser tab. Ubuntu 24.04, RunPod-ready.
VS Code in the browser (full C++ IntelliSense, one-key build/run/debug), a noVNC desktop to watch the browser, a reference Chromium to diff against, Claude Code, SSH/SFTP, and the usual compilers, debuggers and network tools.
Source is NOT in the image. make sync pulls Chromium from official upstream
(chromium.googlesource.com) onto the /workspace volume at runtime, so it survives restarts.
docker run -d --name chromium-dev --shm-size=2g \
-p 8080:8080 -p 6080:6080 -p 2222:22 \
-v chromium-dev-workspace:/workspace \
-e CODE_SERVER_PASSWORD=secret -e TLS=1 \
-e AUTHORIZED_KEYS="$(cat ~/.ssh/id_ed25519.pub)" \
ghcr.io/volkodava/chromium-dev:24.04
Why the flags: --shm-size=2g stops Chromium crashing on a tiny /dev/shm · the three ports map
VS Code / desktop / SSH · the named volume persists the hundreds-of-GB checkout across restarts ·
TLS=1 serves self-signed HTTPS on localhost (drop it behind a TLS proxy like RunPod) ·
AUTHORIZED_KEYS trusts your SSH key.
Open (accept the self-signed cert warning):
ssh root@localhost -p 2222 — scp / sftp / rsyncBoth UIs share CODE_SERVER_PASSWORD (random + printed to docker logs if unset; noVNC uses its first 8 chars).
In the pod (web terminal, SSH, or VS Code), via /workspace/Makefile:
cd /workspace
make sync # fetch Chromium (default: latest Stable). First run is long, resumable.
make build # incremental compile; uses all cores. JOBS=8 caps link RAM.
make run URL=https://example.com # your build, in the desktop
make run-ref URL=https://example.com # reference Chromium, side by side to diff
VS Code keys: Ctrl+Shift+B build · Ctrl+Shift+R run · F5 debug · Ctrl+Shift+G gn gen.
Content type
Image
Digest
sha256:7e674df63…
Size
2 GB
Last updated
4 months ago
docker pull anatoliiv/chromium-dev:24.04