devcontainers / devcontainers/cli
Unexpected workspaceFolder mount behavior when dev container is opened before Git initialization
- Dominant language
- TypeScript
- Stars
- 3k
- Forks
- 457
- Avg merge
- 13h 17m
- Merged PRs (30d)
- 6
Description
I've encountered a strange and hard-to-debug behavior when using multiple `devcontainer.json` files in a monorepo setup.
### Steps to Reproduce
1. Create a new directory (not yet initialized as a Git repository).
2. Add a `.devcontainer` folder in the root with multiple `devcontainer.json` files, each specifying a different `workspaceFolder` to scope the dev container to a project in the monorepo.
3. Open one of the devcontainers in VS Code **before** initializing the root directory as a Git repository.
4. Observe that the workspace folder is mounted incorrectly — the **parent folder** is mounted instead of the expected project directory.
5. Now run `git init` in the root of the repo.
6. Reopen the devcontainer. Everything now works as expected, with the `workspaceFolder` correctly 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.
Contributor guide
Assessment
This issue has not been assessed yet.