Skip to content

Minimum dev container setup#2013

Open
MJohnson459 wants to merge 9 commits into
OpenDroneMap:masterfrom
MJohnson459:devcontainer
Open

Minimum dev container setup#2013
MJohnson459 wants to merge 9 commits into
OpenDroneMap:masterfrom
MJohnson459:devcontainer

Conversation

@MJohnson459
Copy link
Copy Markdown
Contributor

@MJohnson459 MJohnson459 commented Mar 26, 2026

A devcontainer is a small wrapper around Docker to make it easy to set up a clean development environment. Most IDE's and code editors support these now as well as many cloud environments.

I've included a very simple environment to start with which we can extend as necessary later to streamline the build process.

To test this I:

  • pulled the repo and changed to this branch
  • "opened in devcontainer" when prompted (works in vscode, zed, cursor)
  • ran ./configure.sh install
  • pulled the odm_data_aukerman dataset into datasets/odm_data_aukerman
  • ran ./run.sh --project-path datasets odm_data_aukerman

This all ran successfully with no critical errors.

(note I split out the fixes to the build into #2022 to keep feedback separate)

@MJohnson459 MJohnson459 marked this pull request as draft March 26, 2026 11:35
@MJohnson459 MJohnson459 marked this pull request as ready for review April 20, 2026 16:50
A devcontainer is a small wrapper around Docker to make it easy to set
up a clean development environment. Most IDE's and code editors support
these now as well as many cloud environments.

I've included a very simple environment to start with which we can
extend as necessary later to streamline the build process.
@MJohnson459 MJohnson459 marked this pull request as draft May 6, 2026 12:49
@MJohnson459
Copy link
Copy Markdown
Contributor Author

Sorry I moved this back to a draft until I have

  1. Added GPU support
  2. Updated documentation for dev workflows

@MJohnson459 MJohnson459 force-pushed the devcontainer branch 2 times, most recently from 253cec2 to d574ab2 Compare May 7, 2026 09:53
@MJohnson459
Copy link
Copy Markdown
Contributor Author

Ok, I've updated this PR to include both a CPU and GPU version of the devcontainer, both of which now point to the existing respective dockerfiles. I've tried to keep changes on the docker front to a minimum to avoid interfering with existing workflows, as such the final docker images should be unchanged.

As this is intended to be a new and simplified developer setup, I've removed the start-dev-env script which basically did a similar thing. I've also updated the README.md with details on how to use this.

I've tested this on both Linux and Windows but it should work on Mac as well. As a known issue, I did find it took significantly longer to build on Windows due to Docker on Windows and the mixed Windows/WSL filesystem, but I don't believe this is a regression from the previous docker based method.

I haven't updated the hosted docs nor looked at NodeODM as part of this work. This should be a standalone improvement for ODM which we can then copy to NodeODM workflows.

@MJohnson459 MJohnson459 marked this pull request as ready for review May 12, 2026 08:40
@smathermather
Copy link
Copy Markdown
Contributor

Sounds good. So we'll have to T-up NodeODM workflows and docs update and merge in one go then. I'll dive in on testing.

@smathermather
Copy link
Copy Markdown
Contributor

Followed the directions here on devcontainer cli install: https://github.com/devcontainers/cli

Then:

git clone https://github.com/MJohnson459/ODM
cd ODM
git checkout devcontainer
devcontainer up --workspace-folder .

I do get one warning:
=> WARN: InvalidDefaultArgInFrom: Default value for ARG $BASE_IMA 0.0s

I'll also give it a run with vscode and take a look on a Mac.

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