Skip to content

Commit d18be97

Browse files
mohsin-wiserclaude
andcommitted
fix(devcontainer): fix entrypoint permission handling order
Fix permission errors by reordering entrypoint.sh operations: - First fix ownership of parent directories (.local, .config, .vscode-server) - Then create subdirectories (code-server, bin, extensions) - Finally fix ownership of newly created directories This prevents "Permission denied" errors when parent directories are owned by root from volume mounts or previous container runs. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
1 parent 039fed7 commit d18be97

2 files changed

Lines changed: 17 additions & 11 deletions

File tree

.devcontainer/docker-compose.yml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -19,11 +19,11 @@
1919
services:
2020
devcontainer:
2121
# Use prebuilt image (default for fast startup)
22-
image: ghcr.io/simpleaccounts/simpleaccounts-uae-devcontainer:latest
22+
# image: ghcr.io/simpleaccounts/simpleaccounts-uae-devcontainer:latest
2323
# For local development/testing, comment out 'image:' above and uncomment below:
24-
# build:
25-
# context: ..
26-
# dockerfile: .devcontainer/Dockerfile
24+
build:
25+
context: ..
26+
dockerfile: .devcontainer/Dockerfile
2727
env_file:
2828
# Database and application configuration (REQUIRED)
2929
- path: .env

.devcontainer/entrypoint.sh

Lines changed: 13 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -11,13 +11,8 @@ if [ -d "/workspaces/SimpleAccounts-UAE" ]; then
1111
fi
1212

1313
echo " → Fixing config directories ownership..."
14-
# Ensure critical directories exist before fixing ownership
15-
mkdir -p /home/vscode/.local/share/code-server \
16-
/home/vscode/.config/code-server \
17-
/home/vscode/.vscode-server/bin \
18-
/home/vscode/.vscode-server/extensions
19-
20-
# Fix all vscode home directories that might be bind-mounted
14+
# First, fix ownership of parent directories (they might be bind-mounted or exist from previous runs)
15+
# This must happen BEFORE we try to create subdirectories
2116
for dir in /home/vscode/.claude /home/vscode/.gemini /home/vscode/.codex \
2217
/home/vscode/.config/gh /home/vscode/.bash_history_dir \
2318
/home/vscode/.gitconfig_dir /home/vscode/.ssh \
@@ -30,6 +25,17 @@ for dir in /home/vscode/.claude /home/vscode/.gemini /home/vscode/.codex \
3025
fi
3126
done
3227

28+
# NOW create subdirectories (after parent directories have correct ownership)
29+
mkdir -p /home/vscode/.local/share/code-server \
30+
/home/vscode/.config/code-server \
31+
/home/vscode/.vscode-server/bin \
32+
/home/vscode/.vscode-server/extensions 2>/dev/null || true
33+
34+
# Fix ownership of newly created directories
35+
chown -R vscode:vscode /home/vscode/.local \
36+
/home/vscode/.config \
37+
/home/vscode/.vscode-server 2>/dev/null || true
38+
3339
# Ensure SSH directory has correct permissions if it exists
3440
if [ -d "/home/vscode/.ssh" ]; then
3541
echo " → Setting SSH permissions..."

0 commit comments

Comments
 (0)