From 251033f88f4559b3f8faf7272b939bd7352f1e55 Mon Sep 17 00:00:00 2001 From: Kirill Bulatov Date: Tue, 23 Dec 2025 21:10:51 +0200 Subject: [PATCH] Fix the argument order when starting devcontainers (#45584) Release Notes: - (Preview only) Fix devcontainers not starting when certain env variables were set Co-authored-by: KyleBarton --- crates/remote/src/transport.rs | 3 +++ crates/remote/src/transport/docker.rs | 16 +++++++++------- 2 files changed, 12 insertions(+), 7 deletions(-) diff --git a/crates/remote/src/transport.rs b/crates/remote/src/transport.rs index ebf643352fce8a14d88b7c870b177d2c6b7e7de0..2dedf7ace0d7eab7daf34cc8e183f84ef5f9126a 100644 --- a/crates/remote/src/transport.rs +++ b/crates/remote/src/transport.rs @@ -158,6 +158,9 @@ fn handle_rpc_messages_over_child_process_stdio( } }; let status = remote_proxy_process.status().await?.code().unwrap_or(1); + if status != 0 { + anyhow::bail!("Remote server exited with status {status}"); + } match result { Ok(_) => Ok(status), Err(error) => Err(error), diff --git a/crates/remote/src/transport/docker.rs b/crates/remote/src/transport/docker.rs index 9c14aa874941a5cdcd824d4adaeb41d694e347d8..1d84181285b19b2f1e2cca57783e77ab74b6bca2 100644 --- a/crates/remote/src/transport/docker.rs +++ b/crates/remote/src/transport/docker.rs @@ -582,19 +582,21 @@ impl RemoteConnection for DockerExecConnection { return Task::ready(Err(anyhow!("Remote binary path not set"))); }; - let mut docker_args = vec![ - "exec".to_string(), - "-w".to_string(), - self.remote_dir_for_server.clone(), - "-i".to_string(), - self.connection_options.container_id.to_string(), - ]; + let mut docker_args = vec!["exec".to_string()]; for env_var in ["RUST_LOG", "RUST_BACKTRACE", "ZED_GENERATE_MINIDUMPS"] { if let Some(value) = std::env::var(env_var).ok() { docker_args.push("-e".to_string()); docker_args.push(format!("{}='{}'", env_var, value)); } } + + docker_args.extend([ + "-w".to_string(), + self.remote_dir_for_server.clone(), + "-i".to_string(), + self.connection_options.container_id.to_string(), + ]); + let val = remote_binary_relpath .display(self.path_style()) .into_owned();