Repository navigation
Keep gems, the gh login and Claude Code state in shared volumes - #2
Merged
Merged
Conversation
Anything in a container's home directory is lost on rebuild, so every rebuild reinstalled every gem and logged gh and Claude Code out. The images now point Bundler and Claude Code at volume mount points, the Node image mounts the volumes itself, and the README covers the caveats and how to migrate existing containers. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Anything in a devcontainer's home directory is lost when it's rebuilt, so every rebuild reinstalled every gem and logged
ghand Claude Code out, losing Claude's memory and sessions with them. This moves that state into named volumes shared by every project on the machine.BUNDLE_PATH=/home/vscode/.gems,BUNDLE_CLEAN=falseandCLAUDE_CONFIG_DIR=/home/vscode/.claude, and creates the mount points owned byvscode, so each new volume gets that ownership on first mount.ghand Claude volumes through its metadata.compose.yaml. The README explains why the image can't do this for compose-based projects.bin/migrate-to-shared-volumescopies the Claude Code andghstate from existing devcontainers into the volumes before they're rebuilt.bundle clean,gem listvsbundle list, credentials shared across projects, and what removing a volume loses.Tested locally:
vscode, andbundle installinstalls into/home/vscode/.gems/ruby/4.0.0.~/.claude,~/.claude.jsonand~/.config/ghwith their permissions intact, and a second run kept the existing files.🤖 Generated with Claude Code