Use remote user from devcontainer CLI and respect shell in passwd (#48230)

Closes #46252

Uses the `remoteUser` property returned from the devcontainer CLI so
that settings are respected. Additionally, checks for a default shell in
`passwd` if `$SHELL` is not set.

Release Notes:

- Fixed remote_user and shell inconsistencies from within dev containers
This commit is contained in:
KyleBarton authored and GitHub committed 2026-02-02 16:43:51 -08:00
1 parent 7b9beb3678
commit 85d03d5122
5 files changed
+114 -52

No files matched your search

+5 -3
View File
@@ -19,7 +19,7 @@ use crate::{DevContainerFeature, DevContainerSettings, DevContainerTemplate};
struct DevContainerUp {
_outcome: String,
container_id: String,
_remote_user: String,
remote_user: String,
remote_workspace_folder: String,
}
@@ -156,6 +156,7 @@ pub async fn start_dev_container(
Ok(DevContainerUp {
container_id,
remote_workspace_folder,
remote_user,
..
}) => {
let project_name = match devcontainer_read_configuration(
@@ -180,6 +181,7 @@ pub async fn start_dev_container(
name: project_name,
container_id: container_id,
use_podman,
remote_user,
};
Ok((connection, remote_workspace_folder))
@@ -563,7 +565,7 @@ mod tests {
up.container_id,
"826abcac45afd412abff083ab30793daff2f3c8ce2c831df728baf39933cb37a"
);
assert_eq!(up._remote_user, "vscode");
assert_eq!(up.remote_user, "vscode");
assert_eq!(up.remote_workspace_folder, "/workspaces/zed");
let json_in_plaintext = r#"[2026-01-22T16:19:08.802Z] @devcontainers/cli 0.80.1. Node.js v22.21.1. darwin 24.6.0 arm64.
@@ -574,7 +576,7 @@ mod tests {
up.container_id,
"826abcac45afd412abff083ab30793daff2f3c8ce2c831df728baf39933cb37a"
);
assert_eq!(up._remote_user, "vscode");
assert_eq!(up.remote_user, "vscode");
assert_eq!(up.remote_workspace_folder, "/workspaces/zed");
}
}