Skip to content

HDDS-15026. Introduce DevContainer to improve contributor experience#10075

Open
henrybear327 wants to merge 1 commit intoapache:masterfrom
henrybear327:HDDS-15026
Open

HDDS-15026. Introduce DevContainer to improve contributor experience#10075
henrybear327 wants to merge 1 commit intoapache:masterfrom
henrybear327:HDDS-15026

Conversation

@henrybear327
Copy link
Copy Markdown
Contributor

What changes were proposed in this pull request?

With devcontainer, the development environment can be setup quickly, locally and also on Github Codespace, which reduces friction for contributors to onboard.

What is the link to the Apache JIRA

https://issues.apache.org/jira/browse/HDDS-15026

How was this patch tested?

  • Locally on M-series Mac
  • Creating a new Github Codespace

@henrybear327
Copy link
Copy Markdown
Contributor Author

cc: @peterxcli @adoroszlai

@adoroszlai
Copy link
Copy Markdown
Contributor

Thanks @henrybear327 for the patch. Please link to relevant docs that describe devcontainers.

How was this patch tested?

  • Locally on M-series Mac
  • Creating a new Github Codespace

Can you please provide steps?

@henrybear327
Copy link
Copy Markdown
Contributor Author

henrybear327 commented Apr 13, 2026

Thanks @henrybear327 for the patch. Please link to relevant docs that describe devcontainers.

How was this patch tested?

  • Locally on M-series Mac
  • Creating a new Github Codespace

Can you please provide steps?

Sorry for being too brief on this PR. I will make sure I include more context next time.


The official website is https://containers.dev/ - "A development container (or dev container for short) allows you to use a container as a full-featured development environment. It can be used to run an application, to separate tools, libraries, or runtimes needed for working with a codebase, and to aid in continuous integration and testing."

The main benefits are that developers can quickly spin up a Github Codespace and start working on the project, or, locally, a devcontainer, such that all toolchains required for developments are setup already.

It's also used in a lot of Apache projects.


Locally, I followed the devcontainer CLI guide here to install and spin up a devcontainer instance.

On github, I created a codespace against this branch, as shown in the following image:
Screenshot 2026-04-13 at 10 34 06 PM

For both environments, as docker-in-docker is enabled, I followed the README and ran cd hadoop-ozone/dist/target/ozone-*/compose/ozone; docker compose up -d --scale datanode=3 to see if I can spin up a cluster. Screenshot 2026-04-13 at 10 36 52 PM


Hope this helps.

Comment on lines +5 to +7
"ghcr.io/devcontainers/features/java:1": {
"version": "none",
"installMaven": "true"
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Does none indicate that Java comes from the base image and this section is needed only for also installing Maven?

@adoroszlai adoroszlai changed the title HDDS-15026: Introduce DevContainer to improve contributor experience HDDS-15026. Introduce DevContainer to improve contributor experience Apr 15, 2026
@adoroszlai
Copy link
Copy Markdown
Contributor

adoroszlai commented Apr 15, 2026

Thanks @henrybear327 for the detailed description.

We should also add the new .devcontainer dir to the source tarball like:

<fileSet>
<directory>.run</directory>
<includes>
<include>**/*</include>
</includes>
<useDefaultExcludes>true</useDefaultExcludes>
</fileSet>

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants