A collection of dev container Features hosted on GitHub Container Registry.
Installs the LazyVim starter configuration as the default Neovim config (~/.config/nvim).
Skipped automatically if ~/.config/nvim already exists (e.g. mounted from host).
Usage in devcontainer.json:
What it does:
- Checks whether
~/.config/nvimalready exists — if so, skips installation. - Clones the LazyVim/starter repository into
~/.config/nvim. - Removes the
.gitfolder from the cloned config (so it's not a nested git repo). - Sets ownership of the config directory to the remote user.
Prerequisites:
This feature depends on Neovim being available. It is recommended to install it via another feature first:
{
"features": {
"ghcr.io/duduribeiro/devcontainer-features/neovim:1": {},
"ghcr.io/xavierbeheydt/devcontainer-extras/lazyvim:0": {}
}
}The installsAfter property in devcontainer-feature.json ensures lazyvim is installed after neovim.
├── src
│ └── lazyvim
│ ├── devcontainer-feature.json
│ └── install.sh
└── test
└── lazyvim
└── test.sh
Features are published to GHCR via the Release workflow.
After publishing, mark each GHCR package as public to stay within the free tier:
https://github.com/users/xavierbeheydt/packages/container/devcontainer-extras%2F<featureName>/settings
{ "image": "mcr.microsoft.com/devcontainers/base:ubuntu", "features": { "ghcr.io/xavierbeheydt/devcontainer-extras/lazyvim:0": {} } }