Skip to content

Unexpected workspaceFolder mount behavior when dev container is opened before Git initialization #1055

@fightingsleep

Description

@fightingsleep

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.

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions