From fd90ddd0eaa332c3188669c4dc9962b7545450fb Mon Sep 17 00:00:00 2001 From: nathan Date: Wed, 22 Oct 2025 22:31:21 +0100 Subject: [PATCH 1/2] added file path when getting compose logs --- bin/periphery/src/api/compose.rs | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/bin/periphery/src/api/compose.rs b/bin/periphery/src/api/compose.rs index 95c262a27..031edd945 100644 --- a/bin/periphery/src/api/compose.rs +++ b/bin/periphery/src/api/compose.rs @@ -108,8 +108,15 @@ impl Resolve for GetComposeLog { } else { Default::default() }; + let compose_file_path = periphery_config() + .stack_dir() + .join(to_path_compatible_name(&project)) + .join("compose.yaml") + .components() + .collect::(); let command = format!( - "{docker_compose} -p {project} logs --tail {tail}{timestamps} {}", + "{docker_compose} -f {} -p {project} logs --tail {tail}{timestamps} {}", + compose_file_path.display(), services.join(" ") ); Ok(run_komodo_command("get stack log", None, command).await) @@ -128,6 +135,12 @@ impl Resolve for GetComposeLogSearch { timestamps, } = self; let docker_compose = docker_compose(); + let compose_file_path = periphery_config() + .stack_dir() + .join(to_path_compatible_name(&project)) + .join("compose.yaml") + .components() + .collect::(); let grep = log_grep(&terms, combinator, invert); let timestamps = if timestamps { " --timestamps" @@ -135,7 +148,8 @@ impl Resolve for GetComposeLogSearch { Default::default() }; let command = format!( - "{docker_compose} -p {project} logs --tail 5000{timestamps} {} 2>&1 | {grep}", + "{docker_compose} -f {} -p {project} logs --tail 5000{timestamps} {} 2>&1 | {grep}", + compose_file_path.display(), services.join(" ") ); Ok(run_komodo_command("Get stack log grep", None, command).await) From 5c5fd60075ffc6d79544f8baab7a98270f30d41a Mon Sep 17 00:00:00 2001 From: nathan Date: Tue, 6 Jan 2026 23:18:09 +0000 Subject: [PATCH 2/2] Passed down compose files, updated command for podman --- bin/core/src/api/read/stack.rs | 2 ++ bin/periphery/src/api/compose.rs | 35 ++++++++++++++------------ client/periphery/rs/src/api/compose.rs | 4 +++ 3 files changed, 25 insertions(+), 16 deletions(-) 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 031edd945..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,15 +109,15 @@ impl Resolve for GetComposeLog { } else { Default::default() }; - let compose_file_path = periphery_config() - .stack_dir() - .join(to_path_compatible_name(&project)) - .join("compose.yaml") - .components() - .collect::(); + // Convert compose files into -f strings + let compose_flags = compose_files + .iter() + .map(|f| format!("-f {}", f)) + .collect::>() + .join(" "); + let command = format!( - "{docker_compose} -f {} -p {project} logs --tail {tail}{timestamps} {}", - compose_file_path.display(), + "{docker_compose} {compose_flags} -p {project} logs --tail {tail}{timestamps} {}", services.join(" ") ); Ok(run_komodo_command("get stack log", None, command).await) @@ -133,14 +134,17 @@ impl Resolve for GetComposeLogSearch { combinator, invert, timestamps, + compose_files, } = self; let docker_compose = docker_compose(); - let compose_file_path = periphery_config() - .stack_dir() - .join(to_path_compatible_name(&project)) - .join("compose.yaml") - .components() - .collect::(); + + // 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" @@ -148,8 +152,7 @@ impl Resolve for GetComposeLogSearch { Default::default() }; let command = format!( - "{docker_compose} -f {} -p {project} logs --tail 5000{timestamps} {} 2>&1 | {grep}", - compose_file_path.display(), + "{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, } //