diff --git a/bin/core/src/api/read/stack.rs b/bin/core/src/api/read/stack.rs index 5dbd88e38..0955140d3 100644 --- a/bin/core/src/api/read/stack.rs +++ b/bin/core/src/api/read/stack.rs @@ -95,6 +95,7 @@ impl Resolve for GetStackLog { services, tail, timestamps, + compose_files: stack.compose_file_paths().to_vec(), }) .await .context("Failed to get stack log from periphery")?; @@ -130,6 +131,7 @@ impl Resolve for SearchStackLog { combinator, invert, timestamps, + compose_files: stack.compose_file_paths().to_vec(), }) .await .context("Failed to search stack log from periphery")?; diff --git a/bin/periphery/src/api/compose.rs b/bin/periphery/src/api/compose.rs index 95c262a27..ee8fa3f19 100644 --- a/bin/periphery/src/api/compose.rs +++ b/bin/periphery/src/api/compose.rs @@ -101,6 +101,7 @@ impl Resolve for GetComposeLog { services, tail, timestamps, + compose_files, } = self; let docker_compose = docker_compose(); let timestamps = if timestamps { @@ -108,8 +109,15 @@ impl Resolve for GetComposeLog { } else { Default::default() }; + // Convert compose files into -f strings + let compose_flags = compose_files + .iter() + .map(|f| format!("-f {}", f)) + .collect::>() + .join(" "); + let command = format!( - "{docker_compose} -p {project} logs --tail {tail}{timestamps} {}", + "{docker_compose} {compose_flags} -p {project} logs --tail {tail}{timestamps} {}", services.join(" ") ); Ok(run_komodo_command("get stack log", None, command).await) @@ -126,8 +134,17 @@ impl Resolve for GetComposeLogSearch { combinator, invert, timestamps, + compose_files, } = self; let docker_compose = docker_compose(); + + // Convert compose files into -f strings + let compose_flags = compose_files + .iter() + .map(|f| format!("-f {}", f)) + .collect::>() + .join(" "); + let grep = log_grep(&terms, combinator, invert); let timestamps = if timestamps { " --timestamps" @@ -135,7 +152,7 @@ impl Resolve for GetComposeLogSearch { Default::default() }; let command = format!( - "{docker_compose} -p {project} logs --tail 5000{timestamps} {} 2>&1 | {grep}", + "{docker_compose} {compose_flags} -p {project} logs --tail 5000{timestamps} {} 2>&1 | {grep}", services.join(" ") ); Ok(run_komodo_command("Get stack log grep", None, command).await) diff --git a/client/periphery/rs/src/api/compose.rs b/client/periphery/rs/src/api/compose.rs index 9a1dba6c7..e066da69c 100644 --- a/client/periphery/rs/src/api/compose.rs +++ b/client/periphery/rs/src/api/compose.rs @@ -61,6 +61,8 @@ pub struct GetComposeLog { /// Enable `--timestamps` #[serde(default)] pub timestamps: bool, + /// Compose files used in the project (required for podman) + pub compose_files: Vec, } fn default_tail() -> u64 { @@ -92,6 +94,8 @@ pub struct GetComposeLogSearch { /// Enable `--timestamps` #[serde(default)] pub timestamps: bool, + /// Compose files used in the project (required for podman) + pub compose_files: Vec, } //