diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json
new file mode 100644
index 00000000000..4acda45b209
--- /dev/null
+++ b/.devcontainer/devcontainer.json
@@ -0,0 +1,29 @@
+{
+ "name": "Apache Ozone (Java 21)",
+ "image": "mcr.microsoft.com/devcontainers/java:21-bookworm",
+ "features": {
+ "ghcr.io/devcontainers/features/java:1": {
+ "version": "none",
+ "installMaven": "true"
+ },
+ "ghcr.io/devcontainers/features/node:1": {
+ "version": "20"
+ },
+ "ghcr.io/devcontainers/features/docker-in-docker:2": {},
+ "ghcr.io/devcontainers/features/github-cli:1": {},
+ },
+ "postCreateCommand": "hadoop-ozone/dev-support/checks/build.sh -Pdist -Psrc -Dmaven.javadoc.skip=true",
+ "customizations": {
+ "vscode": {
+ "extensions": [
+ "vscjava.vscode-java-pack",
+ "vscjava.vscode-maven",
+ "EditorConfig.EditorConfig"
+ ],
+ "settings": {
+ "java.configuration.updateBuildConfiguration": "automatic"
+ }
+ }
+ },
+ "remoteUser": "vscode"
+}
diff --git a/hadoop-ozone/dist/src/main/assemblies/ozone-src.xml b/hadoop-ozone/dist/src/main/assemblies/ozone-src.xml
index 3c80307dfe3..dfdaa92d17f 100644
--- a/hadoop-ozone/dist/src/main/assemblies/ozone-src.xml
+++ b/hadoop-ozone/dist/src/main/assemblies/ozone-src.xml
@@ -67,6 +67,13 @@
CONTRIBUTING.md
+
+ .devcontainer
+
+ **/*
+
+ true
+
.run