Skip to content

Commit 39adfcf

Browse files
黄飞虹claude
andcommitted
fix: correct /home/node/.config permissions and enable plugin marketplace writes
Fixed two permission issues: 1. /home/node/.config owned by root:0 → now chowned to node:node by entrypoint 2. Plugin marketplaces mounted as :ro → changed to :rw to allow plugin installs Root causes: - entrypoint.sh only fixed permissions for .claude/.local/.agents/go/.cache - opencode failed with EACCES when trying to create ~/.config/opencode - Claude Code /plugin failed with "Read-only file system" for marketplace clones Changes: - docker-entrypoint.sh: Add /home/node/.config to permission fix loop - docker-compose.yml: Change plugin mounts from :ro to :rw Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
1 parent c20b39c commit 39adfcf

2 files changed

Lines changed: 3 additions & 3 deletions

File tree

docker-compose.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -138,8 +138,8 @@ services:
138138
- ${HOME:-${USERPROFILE:-/tmp}}/.claude/settings.json:/home/node/.claude/settings.json:ro
139139
- ${HOME:-${USERPROFILE:-/tmp}}/.claude/skills:/home/node/.claude/skills:ro
140140
# Plugin marketplaces (覆盖 Layer 2 命名卷中的同名路径)
141-
- ${HOME:-${USERPROFILE:-/tmp}}/.claude/plugins/known_marketplaces.json:/home/node/.claude/plugins/known_marketplaces.json:ro
142-
- ${HOME:-${USERPROFILE:-/tmp}}/.claude/plugins/marketplaces:/home/node/.claude/plugins/marketplaces:ro
141+
- ${HOME:-${USERPROFILE:-/tmp}}/.claude/plugins/known_marketplaces.json:/home/node/.claude/plugins/known_marketplaces.json:rw
142+
- ${HOME:-${USERPROFILE:-/tmp}}/.claude/plugins/marketplaces:/home/node/.claude/plugins/marketplaces:rw
143143
# .agents/skills 只读共享
144144
- ${HOME:-${USERPROFILE:-/tmp}}/.agents/skills:/home/node/.agents/skills:ro
145145
# ClawHub CLI 凭据 (跨平台: macOS/Linux/Windows)

docker-entrypoint.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,7 @@ if [[ "$(id -u)" = "0" ]]; then
7676

7777
# Named volume directories: create if missing, then incremental fix
7878
# Note: /home/node/.global is NOT included - Dockerfile:106 already handles it
79-
for dir in "/home/node/.claude" "/home/node/.local" "/home/node/.agents" "/home/node/go" "/home/node/.cache"; do
79+
for dir in "/home/node/.claude" "/home/node/.local" "/home/node/.agents" "/home/node/go" "/home/node/.cache" "/home/node/.config"; do
8080
if [[ ! -d "${dir}" ]]; then
8181
mkdir -p "${dir}"
8282
# New directory: set ownership directly (no need to traverse)

0 commit comments

Comments
 (0)