Containerized environments for popular Neovim distributions and quick starters. Ideal for constrained environments where a streamlined Neovim setup with essential plugins is required.
- Multi-Platform Support: Builds for both
linux/amd64andlinux/arm64architectures, ensuring compatibility with traditional x86 systems and ARM-based systems like Apple's M1/M2 chips. - Pre-installed Tools: Comes with essential tools such as
bat,curl,fd-find,fzf,git,neovim,ripgrep,wget,zoxide, andzsh. - Multiple Neovim Configurations: Supports various Neovim configurations and quick starters like kickstart.nvim, LazyVim, NVChad, and AstroVim.
- Customizable: Easily map your own configurations and keybindings via Docker volumes.
- 0.10.1: Latest release.
-
Linux Architectures:
linux/amd64linux/arm64
-
macOS:
- Runs seamlessly on macOS (including Apple Silicon) through Docker Desktop's virtualization layer.
- Alpine 3.20: Latest release.
bat: Acatclone with syntax highlighting and Git integration.cmake: C/C++ build tool.curl: Tool to transfer data from or to a server.fd-find: Simple, fast, and user-friendly alternative tofind.fzf: A general-purpose command-line fuzzy finder.git: Version control system.jq: A lightweight and flexible command-line JSON processor.ripgrep: Line-oriented search tool that recursively searches directories.wget: Non-interactive network downloader.zoxide: A smartercdcommand.zsh: Z shell, an extended Bourne shell with many improvements.
- Python: 3.12.6
- Golang: 1.23.1
- Rust: 1.81.0
- Node: 20.17.0
You can pull the pre-built Docker images from GitHub Container Registry.
docker pull ghcr.io/helton/neovim:kickstart.nvim-alpine-3.20To run Neovim using the Docker image:
docker run --rm -it ghcr.io/helton/neovim:kickstart.nvim-alpine-3.20Or, to open Neovim in a specific directory:
docker run --rm -it -v $(pwd)/app:/app -w /app ghcr.io/helton/neovim:kickstart.nvim-alpine-3.20Example commands:
docker run --rm -it -v ${PWD}/app:/app -w /app ghcr.io/helton/neovim:kickstart.nvim-alpine-3.20
docker run --rm -it -v ${PWD}/app:/app -w /app ghcr.io/helton/neovim:lazyvim-alpine-3.20
docker run --rm -it -v ${PWD}/app:/app -w /app ghcr.io/helton/neovim:nvchad-alpine-3.20
docker run --rm -it -v ${PWD}/app:/app -w /app ghcr.io/helton/neovim:astronvim-alpine-3.20You can customize your Neovim setup by mapping your own configurations and keybindings. This can be done by mounting your local Neovim configuration directory into the Docker container.
docker run --rm -it \
-v ${PWD}/app:/app \
-v ${HOME}/.config/nvim:/root/.config/nvim \
-w /app \
ghcr.io/helton/neovim:kickstart.nvim-alpine-3.20If you add new plugins to your Neovim configuration, ensure that they can be downloaded within the Docker image. Alternatively, use the default plugins provided by the image if you're operating in a constrained environment with limited network access.
To build the Docker images locally, ensure you have Docker Buildx installed and configured.
Run the build script:
./build.shThis script utilizes Docker Buildx to build multi-platform images (linux/amd64 and linux/arm64).
The images will be tagged with the arch as suffix, like neovim-kickstart.nvim-alpine-3.20-amd64
To run built images locally, use commands like the following:
docker run --rm -it -v ${PWD}/app:/app -w /app neovim:kickstart.nvim-alpine-3.20-amd64
docker run --rm -it -v ${PWD}/app:/app -w /app neovim:kickstart.nvim-alpine-3.20-arm64
docker run --rm -it -v ${PWD}/app:/app -w /app neovim:lazyvim-alpine-3.20-amd64
docker run --rm -it -v ${PWD}/app:/app -w /app neovim:lazyvim-alpine-3.20-arm64
docker run --rm -it -v ${PWD}/app:/app -w /app neovim:nvchad-alpine-3.20-amd64
docker run --rm -it -v ${PWD}/app:/app -w /app neovim:nvchad-alpine-3.20-arm64
docker run --rm -it -v ${PWD}/app:/app -w /app neovim:astronvim-alpine-3.20-amd64
docker run --rm -it -v ${PWD}/app:/app -w /app neovim:astronvim-alpine-3.20-arm64Contributions are welcome! Please fork the repository and submit a pull request with your enhancements.