microsoft / microsoft/vscode-remote-release
Add ability to mount volumes by configuration
Nobody has claimed this yet.
- Dominant language
- Dockerfile
- Stars
- 4.2k
- Forks
- 470
- Avg merge
- 1d 1h
- Merged PRs (30d)
- 1
Description
In a similar vein to being able to install extensions that are good for me, but not essential to my project, and configure a dotfiles repo to install tools that are useful to me but not essential for my project, it would be helpful if I could bind volumes that are useful to me but not essential for my project.
Example use-case: I like to use oh-my-zsh for terminal hacking, but I don't want to force other people working on my project to work with zsh when bash would do the job. Currently, I install zsh, oh-my-zsh and all my favourite themes/plugins in dotfiles. If I could share zsh history across my various containers through a named volume on the host then the oh-my-zsh auto-complete plugin would become a lot more useful.
Unfortunately, at least as I understand it, mounts can be added only through docker run, which is entirely under the control of the remote containers extension. I could add it to the mounts property and it wouldn't really hurt anyone else, but that feels like a bad solution for personal preferences. It also doesn't help me when I work on someone else's project.
If a user-level config array was added (similar to the extensions list) that accepted strings in the same format as the mounts property in devcontainer.json then merged the two lists (removing any effective dupes) before passing them to docker run, I could solve that problem (and others) pretty easily.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by tracing the remote containers extension's handling of devcontainer.json, especially the mounts and extensions properties, through to docker run. Define how a user-level mount array is read and how effective duplicates are identified. Done means user-level and project mounts are merged before docker run without changing project behavior.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- docker, vscode
- Domain
- devops, tooling
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100