Commit Graph
2 Commits
Author SHA1 Message Date
LinusandClaude Opus 5.5 16dbf25c9b Share a chosen workspace folder and stop with the window
run.sh asks which host folder Claude may access, using the desktop's
folder picker (zenity, or kdialog on KDE; terminal prompt otherwise),
and mounts it read-write at /workspace. It opens at the last folder
used, refuses / and $HOME, and can be skipped with --workspace DIR.
The image creates /workspace and a ~/workspace symlink to it.

Closing Claude Desktop's window only hides the app, which left the
container running invisibly. The new entrypoint launch-claude.sh
watches the app's X windows and quits it once none is open or
minimized, so the container exits with it. run.sh adds --init for
signal handling and reaping.

Also add .gitignore for workspace/ and .env.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-02 12:22:38 +01:00
LinusandClaude Opus 5.5 f01fe47f16 Add Claude Desktop container with per-start sign-in
Dockerfile installs Claude Desktop from Anthropic's apt repo (key
fingerprint verified) and runs it as a non-root user matching the host
UID/GID. run.sh forwards the host X display with a scoped xauth cookie
and checks that a window can be drawn before starting the app.

No keyring and no config volume: Electron uses --password-store=basic,
the container runs with --rm, so the user logs in on every start.

Chromium's sandbox can't create namespaces under Docker's default
seccomp profile, so the app runs with --no-sandbox; the container's own
seccomp and namespaces remain the boundary to the host.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-02 12:07:19 +01:00