Docker Container of Jvim Java IDE
This Docker image provides a fully configured Neovim-based Java IDE built on Ubuntu Linux. It is designed for reproducible, multi-architecture development (arm64 / amd64) and ships with a modern Java toolchain, rich terminal environment, and a preconfigured Jvim setup.
The image is built using Docker Buildx and published as a multi-arch image, so the same tag works seamlessly on Apple Silicon (M1/M2) and x86_64 machines.
- Prerequisites
- Getting Started
- Components
- Features
- Usage Examples
- Build Instructions
- Multi-Architecture Build
- Customization
- Troubleshooting
- Support
- Docker (with Buildx enabled)
- Docker Desktop (macOS / Windows) or Docker Engine (Linux)
- Optional: Docker Hub account (for pushing images)
Pull the latest multi-arch image:
docker pull israiloff/jvim:latestRun the container:
docker run -it \
--name jvim \
-v $(pwd):/root/project \
israiloff/jvimInside the container:
nvimTo allow Docker CLI usage inside the container (recommended approach):
docker run -it \
--name jvim \
-v /var/run/docker.sock:/var/run/docker.sock \
-v $(pwd):/root/project \
israiloff/jvimℹ️ This image does not run Docker daemon inside the container. Instead, it uses the host Docker daemon via socket mounting (best practice).
- Ubuntu 24.04 LTS
- glibc-based system (required for upstream Neovim binaries)
- Timezone support (default:
Asia/Tashkent) - Bash & ZSH
OpenJDK (default: JDK 21)
Maven
Git
- Custom alias:
git pushall
- Custom alias:
- GCC / G++
- Make
- Build-essential
- Cargo (Rust toolchain)
- curl
- ripgrep
- fd
- fzf
- zip / unzip
- Node.js
- npm
- Yarn
Neovim (latest release from GitHub)
- Installed per-architecture during build (
arm64/amd64)
- Installed per-architecture during build (
Jvim configuration
- LSP (Java, XML, YAML, etc.)
- Treesitter
- Lazy.nvim plugin manager
- Markdown preview
ZSH (default shell)
Oh My Zsh
Theme:
half-lifePlugins:
- zsh-autosuggestions
- zsh-syntax-highlighting
- fast-syntax-highlighting
- zsh-autocomplete
- ✅ Full Java IDE inside terminal
- ✅ Latest Neovim from official GitHub releases
- ✅ Java / C++ / Rust / Node.js support
- ✅ Maven-based Java workflows
- ✅ Docker CLI access via socket
- ✅ linux/arm64 (Apple Silicon)
- ✅ linux/amd64 (Intel / AMD)
- ✅ Single tag, multi-arch manifest
- ✅ ZSH + Oh My Zsh
- ✅ Fast startup
- ✅ Headless plugin sync during build
- ✅ Clean, reproducible environment
docker run -it -v $(pwd):/root/project israiloff/jvimInside container:
mvn archetype:generate \
-DgroupId=com.example \
-DartifactId=my-app \
-DarchetypeArtifactId=maven-archetype-quickstart \
-DinteractiveMode=false
cd my-app
nvimdocker run -it \
-v /path/to/project:/root/project \
israiloff/jvimdocker build \
--build-arg JDK_VERSION=21 \
--build-arg TIMEZONE=Asia/Tashkent \
-t israiloff/jvim:local .This project uses Docker Buildx and BuildKit platform awareness.
docker buildx build \
--platform linux/arm64,linux/amd64 \
--build-arg JDK_VERSION=21 \
--build-arg TIMEZONE=Asia/Tashkent \
-t israiloff/jvim:0.4.14 \
-t israiloff/jvim:latest \
--push \
.docker buildx imagetools inspect israiloff/jvim:latestMount your config:
docker run -it \
-v ~/.config/nvim:/root/.config/nvim \
israiloff/jvimEdit .zshrc inside container or mount it:
-v ~/.zshrc:/root/.zshrcnvim --headless "+Lazy! sync" +qacd~/.local/share/nvim/lazy/markdown-preview.nvim
yarn installEnsure socket is mounted:
-v /var/run/docker.sock:/var/run/docker.sockFor support, visit the project repository or Docker Hub page for documentation and issue tracking.
- Jvim Configuration - The Neovim configuration used in this container
- Neovim - Hyperextensible Vim-based text editor
License: This project follows the same license as the Jvim configuration. Maintained by: Israiloff