An all-purpose JVM devcontainer. Can be used for Clojure, Scala, Java, and Kotlin.
426
A valid devcontainer.json configuration for this Dockerfile.
A complete VS Code dev container setup for JVM development with Java 25, Maven, Gradle, SBT, and Kotlin.
View the Quick Start guide This provides a script to bootstrap your repo
docker pull michaeldisalvo/jvm-dev-container:latest.devcontainer folder in the rootCtrl+Shift+P (or Cmd+Shift+P on Mac) and select "Dev Containers: Reopen in Container"Choose your language and build tool:
Leiningen + Clojure:
lein new app my-clojure-app
cd my-clojure-app
lein repl
Then use Calva (the Clojure extension) to connect to the running REPL:
Ctrl+Alt+C then Ctrl+Alt+C to connectMaven + Java:
mvn archetype:generate -DgroupId=com.example -DartifactId=my-app -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false
cd my-app
mvn clean package
Gradle + Java:
gradle init --type java-application --dsl groovy --package com.example
cd app
gradle build
Kotlin + Gradle:
gradle init --type kotlin-application --dsl groovy --package com.example
cd app
gradle build
Scala + SBT:
mkdir my-scala-app && cd my-scala-app
sbt new scala/scala-seed.g8
.m2 cache.gradle cache.sbt cacheThe container forwards these ports for convenient access:
Automatically installed:
java -version
lein --version
mvn --version
gradle --version
sbt --version
kotlinc -version
lein new app project-name
lein test
lein uberjar
lein repl
lein clean
mvn clean install
mvn test
mvn spring-boot:run
gradle build
gradle test
gradle run
gradle bootRun # For Spring Boot
kotlinc -help
kotlinc Main.kt -include-runtime -d Main.jar
java -jar Main.jar
sbt compile
sbt test
sbt run
sbt console # Interactive Scala REPL
javac MyClass.java
java MyClass
jar cf my-app.jar *.class
.devcontainer folder from your VS Code workspace and rebuilddocker logs <container-id>lein repl in the terminal/root/.m2devcontainer.json under forwardPortsEdit the FROM line in Dockerfile:
FROM eclipse-temurin:25-jdk-jammy # Change 25 to 17, 11, etc.
To reduce image size, comment out tools you don't need in Dockerfile:
# RUN mkdir -p /opt/sbt && \ # Skip SBT if not using Scala
# wget -q https://...
Add extension IDs to the extensions array in devcontainer.json:
"extensions": [
"ms-vscode.extension-pack-for-java",
"your-extension-id"
]
Edit forwardPorts in devcontainer.json:
"forwardPorts": [3000, 5005, 8080, 8888, 9000, 9200]
This dev container configuration is provided as-is for development purposes.
Content type
Image
Digest
sha256:111da639c…
Size
467.1 MB
Last updated
4 months ago
docker pull michaeldisalvo/jvm-dev-container