chore: update claude code installation in ddev container

This commit is contained in:
Björn Fromme
2026-01-09 18:07:45 +01:00
parent 90af012e56
commit 168c128b1d
4 changed files with 41 additions and 2 deletions
+3 -1
View File
@@ -1,9 +1,11 @@
name: claude
repository: /Users/fromme/Development/Misc/ddev-claude-code
version: ""
install_date: "2026-01-09T16:22:30+01:00"
install_date: "2026-01-09T17:50:43+01:00"
project_files:
- commands/web/claude
- config.claude.yaml
- docker-compose.claude.yaml
- claude/.gitignore
global_files: []
removal_actions: []
+5
View File
@@ -0,0 +1,5 @@
# Auth tokens - do not commit
.claude.json
# Claude data directory
.claude/
+21 -1
View File
@@ -1,6 +1,26 @@
#ddev-generated
# Claude Code add-on configuration
# This file is merged with your project's .ddev/config.yaml
hooks:
post-start:
- exec: "mkdir -p ~/.bashrc.d && test -f ~/.bashrc.d/claude.sh || echo 'export PATH=\"$HOME/.local/bin:$PATH\"' > ~/.bashrc.d/claude.sh && test -f ~/.local/bin/claude || curl -fsSL https://claude.ai/install.sh | bash"
# Fix volume permissions for binaries
- exec: "sudo chown -R $(id -u):$(id -g) /mnt/claude-binaries"
- exec: "mkdir -p /mnt/claude-binaries/local-bin /mnt/claude-binaries/local-share"
# Create config directories if needed
- exec: "mkdir -p /mnt/claude-config/.claude"
- exec: "touch /mnt/claude-config/.claude.json"
# Copy global CLAUDE.md and skills from homeadditions (if they exist)
- exec: "test -f ~/.claude-global/CLAUDE.md && cp -n ~/.claude-global/CLAUDE.md /mnt/claude-config/.claude/ || true"
- exec: "test -d ~/.claude-global/skills && cp -rn ~/.claude-global/skills /mnt/claude-config/.claude/ || true"
# Remove existing dirs/files and create symlinks
- exec: "rm -rf ~/.claude && ln -sfn /mnt/claude-config/.claude ~/.claude"
- exec: "rm -f ~/.claude.json && ln -sfn /mnt/claude-config/.claude.json ~/.claude.json"
# Symlink ~/.local/bin to volume (for claude binary)
- exec: "mkdir -p ~/.local && rm -rf ~/.local/bin && ln -sfn /mnt/claude-binaries/local-bin ~/.local/bin"
# Symlink ~/.local/share to volume (for claude versions)
- exec: "rm -rf ~/.local/share && ln -sfn /mnt/claude-binaries/local-share ~/.local/share"
# Set up PATH
- exec: "mkdir -p ~/.bashrc.d && echo 'export PATH=\"$HOME/.local/bin:$PATH\"' > ~/.bashrc.d/claude.sh"
# Install Claude Code if not already installed
- exec: "test -f /mnt/claude-binaries/local-share/claude/versions/*/claude || curl -fsSL https://claude.ai/install.sh | bash"
+12
View File
@@ -0,0 +1,12 @@
#ddev-generated
# Mount a named Docker volume for Claude Code binaries (isolated)
# Config files are stored in .ddev/claude/ (host-accessible)
services:
web:
volumes:
- claude-binaries:/mnt/claude-binaries
- ./claude:/mnt/claude-config
volumes:
claude-binaries: