From 24a6633322b5f1ee3b60b42e8e1b886f61b678e3 Mon Sep 17 00:00:00 2001 From: Soham Dasgupta Date: Tue, 13 Jan 2026 20:45:33 +0530 Subject: [PATCH] fix: add OpenCode cache volume for version file persistence OpenCode stores a version file in ~/.cache/opencode/ which was causing EACCES permission errors. This adds: - Volume mount for ~/.cache/opencode - Entrypoint script to set correct ownership/permissions on the cache directory --- docker-compose.yml | 8 ++++++++ docker-entrypoint.sh | 7 +++++++ 2 files changed, 15 insertions(+) diff --git a/docker-compose.yml b/docker-compose.yml index 3a7e17ed..2c4cb71e 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -90,6 +90,9 @@ services: # Persist OpenCode user configuration across container restarts - automaker-opencode-config:/home/automaker/.config/opencode + # Persist OpenCode cache directory (contains version file and other cache data) + - automaker-opencode-cache:/home/automaker/.cache/opencode + # NO host directory mounts - container cannot access your laptop files # If you need to work on a project, create it INSIDE the container # or use a separate docker-compose override file @@ -123,3 +126,8 @@ volumes: name: automaker-opencode-config # Named volume for OpenCode user configuration (~/.config/opencode) # Persists user configuration across container restarts + + automaker-opencode-cache: + name: automaker-opencode-cache + # Named volume for OpenCode cache directory (~/.cache/opencode) + # Contains version file and other cached data diff --git a/docker-entrypoint.sh b/docker-entrypoint.sh index 9321ce37..153f5122 100755 --- a/docker-entrypoint.sh +++ b/docker-entrypoint.sh @@ -40,6 +40,13 @@ fi chown -R automaker:automaker /home/automaker/.config/opencode chmod -R 700 /home/automaker/.config/opencode +# OpenCode also uses ~/.cache/opencode for cache data (version file, etc.) +if [ ! -d "/home/automaker/.cache/opencode" ]; then + mkdir -p /home/automaker/.cache/opencode +fi +chown -R automaker:automaker /home/automaker/.cache/opencode +chmod -R 700 /home/automaker/.cache/opencode + # If CURSOR_AUTH_TOKEN is set, write it to the cursor auth file # On Linux, cursor-agent uses ~/.config/cursor/auth.json for file-based credential storage # The env var CURSOR_AUTH_TOKEN is also checked directly by cursor-agent