diff --git a/docker-compose.yml b/docker-compose.yml index f08a990..d32001f 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -32,6 +32,10 @@ services: - PLAYWRIGHT_BROWSER=${PLAYWRIGHT_BROWSER:-} - PLAYWRIGHT_EXTRA_ARGS=${PLAYWRIGHT_EXTRA_ARGS:---no-sandbox} - PLAYWRIGHT_COMMAND=${PLAYWRIGHT_COMMAND:-playwright-mcp} + # git trusts every repository: workspaces copied in on the host belong to another uid, which git otherwise refuses. + - GIT_CONFIG_COUNT=1 + - GIT_CONFIG_KEY_0=safe.directory + - GIT_CONFIG_VALUE_0=* # Bind mounts on the host. Docker creates missing directories as root; the entrypoint hands the three roots to app. volumes: - /media/disk1/containers/volcanic_secretary_core/workspaces:/data/workspaces diff --git a/docs/docker.md b/docs/docker.md index 7ea6ad0..30c6206 100644 --- a/docs/docker.md +++ b/docs/docker.md @@ -82,6 +82,7 @@ The compose file maps them into the container. | `PLAYWRIGHT_BROWSER` | `chromium` | Only Chromium is installed in the image | Yes | | `PLAYWRIGHT_EXTRA_ARGS` | `--no-sandbox` | Extra `playwright-mcp` arguments. Keep `--no-sandbox` when you override it: Chromium's sandbox needs user namespaces, which Docker's default seccomp profile denies | Yes | | `PLAYWRIGHT_COMMAND` | `playwright-mcp` | The preinstalled server, so the first browser call doesn't wait for an `npx` download | Yes | +| `GIT_CONFIG_COUNT`, `GIT_CONFIG_KEY_0`, `GIT_CONFIG_VALUE_0` | `1`, `safe.directory`, `*` | Fixed in the compose file: git trusts every repository, so repositories copied in from the host (owned by another uid) don't fail with "dubious ownership" | Yes | `TELEGRAM_MODEL` and `LOG_LEVEL` are read by the compose file only, which passes them to the bot as `Telegram__Model` and `Logging__LogLevel__Default`; `INSTALL_PLAYWRIGHT` and `CLAUDE_CODE_VERSION` are build arguments (see above).