Unexpected workspaceFolder mount behavior when dev container is opened before Git initialization
I've encountered a strange and hard-to-debug behavior when using multiple devcontainer.json files in a monorepo setup.
Steps to Reproduce
- Create a new directory (not yet initialized as a Git repository).
- Add a
.devcontainerfolder in the root with multipledevcontainer.jsonfiles, each specifying a differentworkspaceFolderto scope the dev container to a project in the monorepo. - Open one of the devcontainers in VS Code before initializing the root directory as a Git repository.
- Observe that the workspace folder is mounted incorrectly — the parent folder is mounted instead of the expected project directory.
- Now run
git initin the root of the repo. - Reopen the devcontainer. Everything now works as expected, with the
workspaceFoldercorrectly mounted.
🧠 Expected Behavior
The specified workspaceFolder should be mounted correctly, even if the root directory hasn't been initialized as a Git repository.
😕 Actual Behavior
Before Git initialization, the mount behavior is incorrect — it mounts the parent directory instead of the specified workspaceFolder. This is confusing and difficult to diagnose.
💥 Impact
This behavior makes it hard to use dev containers in new projects or automation scripts that generate dev containers before initializing Git. It also leads to unexpected mount paths, which can break tooling, scripts, or assumptions about paths inside the container.
✅ Suggested Fix
The logic determining the workspaceFolder mount should not depend on whether the folder has been initialized as a Git repository. If Git initialization is required for some internal behavior, it should at least produce a warning or fallback gracefully.
Let me know if you'd like logs or a minimal repro repo — happy to provide more detail if needed.