From e65e6d225f937889d4049efcb695d52bb2fbf369 Mon Sep 17 00:00:00 2001 From: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com> Date: Wed, 25 Dec 2024 03:35:21 -0600 Subject: [PATCH 1/3] refactor: add no trunc --- .../dashboard/swarm/applications/columns.tsx | 16 ++-------------- packages/server/src/services/docker.ts | 4 +++- 2 files changed, 5 insertions(+), 15 deletions(-) diff --git a/apps/dokploy/components/dashboard/swarm/applications/columns.tsx b/apps/dokploy/components/dashboard/swarm/applications/columns.tsx index 1961cd99..362cb29b 100644 --- a/apps/dokploy/components/dashboard/swarm/applications/columns.tsx +++ b/apps/dokploy/components/dashboard/swarm/applications/columns.tsx @@ -1,21 +1,9 @@ import type { ColumnDef } from "@tanstack/react-table"; -import { ArrowUpDown, MoreHorizontal } from "lucide-react"; +import { ArrowUpDown } from "lucide-react"; import * as React from "react"; import { Button } from "@/components/ui/button"; -import { - DropdownMenu, - DropdownMenuContent, - DropdownMenuLabel, - DropdownMenuTrigger, -} from "@/components/ui/dropdown-menu"; - import { Badge } from "@/components/ui/badge"; -import { ShowNodeConfig } from "../details/show-node-config"; -// import { ShowContainerConfig } from "../config/show-container-config"; -// import { ShowDockerModalLogs } from "../logs/show-docker-modal-logs"; -// import { DockerTerminalModal } from "../terminal/docker-terminal-modal"; -// import type { Container } from "./show-containers"; export interface ApplicationList { ID: string; @@ -212,7 +200,7 @@ export const columns: ColumnDef[] = [ ); }, cell: ({ row }) => { - return
{row.getValue("Errors")}
; + return
{row.getValue("Errors")}
; }, }, ]; diff --git a/packages/server/src/services/docker.ts b/packages/server/src/services/docker.ts index 55764230..8835835d 100644 --- a/packages/server/src/services/docker.ts +++ b/packages/server/src/services/docker.ts @@ -438,7 +438,7 @@ export const getApplicationInfo = async ( try { let stdout = ""; let stderr = ""; - const command = `docker service ps ${appName} --format '{{json .}}'`; + const command = `docker service ps ${appName} --format '{{json .}}' --no-trunc`; if (serverId) { const result = await execAsyncRemote(serverId, command); @@ -460,6 +460,8 @@ export const getApplicationInfo = async ( .split("\n") .map((line) => JSON.parse(line)); + console.log(appArray); + return appArray; } catch (error) {} }; From 64a449a09d0ed8f753111e0cdf8c6588b6404bb0 Mon Sep 17 00:00:00 2001 From: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com> Date: Wed, 25 Dec 2024 03:45:21 -0600 Subject: [PATCH 2/3] refactor: add swarm improvements --- .../logs/show-docker-modal-stack-logs.tsx | 58 +++++++++++++++++++ .../dashboard/swarm/applications/columns.tsx | 41 ++++++++++++- .../swarm/applications/show-applications.tsx | 1 + packages/server/src/services/docker.ts | 2 - 4 files changed, 99 insertions(+), 3 deletions(-) create mode 100644 apps/dokploy/components/dashboard/docker/logs/show-docker-modal-stack-logs.tsx diff --git a/apps/dokploy/components/dashboard/docker/logs/show-docker-modal-stack-logs.tsx b/apps/dokploy/components/dashboard/docker/logs/show-docker-modal-stack-logs.tsx new file mode 100644 index 00000000..36719bb0 --- /dev/null +++ b/apps/dokploy/components/dashboard/docker/logs/show-docker-modal-stack-logs.tsx @@ -0,0 +1,58 @@ +import { + Dialog, + DialogContent, + DialogDescription, + DialogHeader, + DialogTitle, + DialogTrigger, +} from "@/components/ui/dialog"; +import { DropdownMenuItem } from "@/components/ui/dropdown-menu"; +import dynamic from "next/dynamic"; +import type React from "react"; +export const DockerLogsId = dynamic( + () => + import("@/components/dashboard/docker/logs/docker-logs-id").then( + (e) => e.DockerLogsId, + ), + { + ssr: false, + }, +); + +interface Props { + containerId: string; + children?: React.ReactNode; + serverId?: string | null; +} + +export const ShowDockerModalStackLogs = ({ + containerId, + children, + serverId, +}: Props) => { + return ( + + + e.preventDefault()} + > + {children} + + + + + View Logs + View the logs for {containerId} + +
+ +
+
+
+ ); +}; diff --git a/apps/dokploy/components/dashboard/swarm/applications/columns.tsx b/apps/dokploy/components/dashboard/swarm/applications/columns.tsx index 362cb29b..69ccc41d 100644 --- a/apps/dokploy/components/dashboard/swarm/applications/columns.tsx +++ b/apps/dokploy/components/dashboard/swarm/applications/columns.tsx @@ -1,9 +1,17 @@ import type { ColumnDef } from "@tanstack/react-table"; -import { ArrowUpDown } from "lucide-react"; +import { ArrowUpDown, MoreHorizontal } from "lucide-react"; import * as React from "react"; import { Button } from "@/components/ui/button"; +import { + DropdownMenu, + DropdownMenuContent, + DropdownMenuLabel, + DropdownMenuTrigger, +} from "@/components/ui/dropdown-menu"; + import { Badge } from "@/components/ui/badge"; +import { ShowDockerModalStackLogs } from "../../docker/logs/show-docker-modal-stack-logs"; export interface ApplicationList { ID: string; @@ -16,6 +24,7 @@ export interface ApplicationList { DesiredState: string; Error: string; Node: string; + serverId: string; } export const columns: ColumnDef[] = [ @@ -203,4 +212,34 @@ export const columns: ColumnDef[] = [ return
{row.getValue("Errors")}
; }, }, + { + accessorKey: "Logs", + accessorFn: (row) => row.Error, + header: ({ column }) => { + return Logs; + }, + cell: ({ row }) => { + return ( + + + + + + + Actions + + View Logs + + + + + ); + }, + }, ]; diff --git a/apps/dokploy/components/dashboard/swarm/applications/show-applications.tsx b/apps/dokploy/components/dashboard/swarm/applications/show-applications.tsx index 132cb008..df764225 100644 --- a/apps/dokploy/components/dashboard/swarm/applications/show-applications.tsx +++ b/apps/dokploy/components/dashboard/swarm/applications/show-applications.tsx @@ -89,6 +89,7 @@ export const ShowNodeApplications = ({ serverId }: Props) => { Error: detail.Error, Node: detail.Node, Ports: detail.Ports || app.Ports, + serverId: serverId || "", })); }); diff --git a/packages/server/src/services/docker.ts b/packages/server/src/services/docker.ts index 8835835d..9a40893e 100644 --- a/packages/server/src/services/docker.ts +++ b/packages/server/src/services/docker.ts @@ -460,8 +460,6 @@ export const getApplicationInfo = async ( .split("\n") .map((line) => JSON.parse(line)); - console.log(appArray); - return appArray; } catch (error) {} }; From 5c1993a64722f046cbc2be9a7998a0736d7639db Mon Sep 17 00:00:00 2001 From: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com> Date: Wed, 25 Dec 2024 03:54:25 -0600 Subject: [PATCH 3/3] refactor: exclude dokploy services --- packages/server/src/services/docker.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/server/src/services/docker.ts b/packages/server/src/services/docker.ts index 9a40893e..79cd8345 100644 --- a/packages/server/src/services/docker.ts +++ b/packages/server/src/services/docker.ts @@ -425,7 +425,8 @@ export const getNodeApplications = async (serverId?: string) => { const appArray = stdout .trim() .split("\n") - .map((line) => JSON.parse(line)); + .map((line) => JSON.parse(line)) + .filter((service) => !service.Name.startsWith('dokploy-')); return appArray; } catch (error) {}