From cd5c765f271fdfdabffcf583e3dcee0233be4399 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Silva?= <123550+andresilva@users.noreply.github.com> Date: Tue, 14 May 2024 15:03:22 +0100 Subject: [PATCH] fix(docker): don't early exit if docker binary isn't available (#211) --- crates/provider/src/docker/client.rs | 23 +++++++++++++---------- 1 file changed, 13 insertions(+), 10 deletions(-) diff --git a/crates/provider/src/docker/client.rs b/crates/provider/src/docker/client.rs index 2f8dca5..c2699b1 100644 --- a/crates/provider/src/docker/client.rs +++ b/crates/provider/src/docker/client.rs @@ -186,21 +186,24 @@ impl DockerClient { } async fn is_using_podman() -> Result<bool> { - let result = tokio::process::Command::new("docker") + if let Ok(output) = tokio::process::Command::new("docker") + .arg("version") + .output() + .await + { + // detect whether we're actually running podman with docker emulation + return Ok(String::from_utf8_lossy(&output.stdout) + .to_lowercase() + .contains("podman")); + } + + tokio::process::Command::new("podman") .arg("--version") .output() .await .map_err(|err| anyhow!("Failed to detect container engine: {err}"))?; - if !result.status.success() { - return Err(anyhow!( - "Failed to detect container engine: {}", - String::from_utf8_lossy(&result.stderr) - ) - .into()); - } - - Ok(String::from_utf8_lossy(&result.stdout).contains("podman")) + Ok(true) } } -- GitLab