From 7c981b2aac1072276898dab224887d3d01993239 Mon Sep 17 00:00:00 2001 From: Lorenzo Migliorero Date: Mon, 22 Jul 2024 17:33:42 +0200 Subject: [PATCH 1/2] fix: compose containers --- components/dashboard/compose/logs/show.tsx | 4 +++- server/api/routers/docker.ts | 5 ++++- server/api/services/docker.ts | 12 ++++++++++-- 3 files changed, 17 insertions(+), 4 deletions(-) diff --git a/components/dashboard/compose/logs/show.tsx b/components/dashboard/compose/logs/show.tsx index 546b7cc7..19a7c4e6 100644 --- a/components/dashboard/compose/logs/show.tsx +++ b/components/dashboard/compose/logs/show.tsx @@ -30,12 +30,14 @@ export const DockerLogs = dynamic( interface Props { appName: string; + appType: "stack" | "docker-compose"; } -export const ShowDockerLogsCompose = ({ appName }: Props) => { +export const ShowDockerLogsCompose = ({ appName, appType }: Props) => { const { data } = api.docker.getContainersByAppNameMatch.useQuery( { appName, + appType, }, { enabled: !!appName, diff --git a/server/api/routers/docker.ts b/server/api/routers/docker.ts index c8bb9517..208ba6d1 100644 --- a/server/api/routers/docker.ts +++ b/server/api/routers/docker.ts @@ -25,11 +25,14 @@ export const dockerRouter = createTRPCRouter({ getContainersByAppNameMatch: protectedProcedure .input( z.object({ + appType: z + .union([z.literal("stack"), z.literal("docker-compose")]) + .optional(), appName: z.string().min(1), }), ) .query(async ({ input }) => { - return await getContainersByAppNameMatch(input.appName); + return await getContainersByAppNameMatch(input.appName, input.appType); }), getContainersByAppLabel: protectedProcedure diff --git a/server/api/services/docker.ts b/server/api/services/docker.ts index 8c951e8d..927c94f6 100644 --- a/server/api/services/docker.ts +++ b/server/api/services/docker.ts @@ -66,10 +66,18 @@ export const getConfig = async (containerId: string) => { } catch (error) {} }; -export const getContainersByAppNameMatch = async (appName: string) => { +export const getContainersByAppNameMatch = async ( + appName: string, + appType?: "stack" | "docker-compose", +) => { try { + const cmd = + "docker ps -a --format 'CONTAINER ID : {{.ID}} | Name: {{.Names}} | State: {{.State}}'"; + const { stdout, stderr } = await execAsync( - `docker ps -a --format 'CONTAINER ID : {{.ID}} | Name: {{.Names}} | State: {{.State}}' | grep ${appName}`, + appType === "docker-compose" + ? `${cmd} --filter='label=com.docker.compose.project=${appName}'` + : `${cmd} | grep ${appName}`, ); if (stderr) { From b85639f98efcc88049e664c9d6afecc36d88822c Mon Sep 17 00:00:00 2001 From: Lorenzo Migliorero Date: Mon, 22 Jul 2024 17:42:31 +0200 Subject: [PATCH 2/2] fix: add apptype param --- .../project/[projectId]/services/compose/[composeId].tsx | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/pages/dashboard/project/[projectId]/services/compose/[composeId].tsx b/pages/dashboard/project/[projectId]/services/compose/[composeId].tsx index dc32325e..22ef7505 100644 --- a/pages/dashboard/project/[projectId]/services/compose/[composeId].tsx +++ b/pages/dashboard/project/[projectId]/services/compose/[composeId].tsx @@ -156,7 +156,10 @@ const Service = (
- +