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/amd64
andlinux/arm64
architectures, 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/amd64
linux/arm64
-
macOS:
- Runs seamlessly on macOS (including Apple Silicon) through Docker Desktop's virtualization layer.
- Alpine 3.20: Latest release.
bat
: Acat
clone 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 smartercd
command.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.20
To run Neovim using the Docker image:
docker run --rm -it ghcr.io/helton/neovim:kickstart.nvim-alpine-3.20
Or, 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.20
Example 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.20
You 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.20
If 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.sh
This 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-arm64
Contributions are welcome! Please fork the repository and submit a pull request with your enhancements.