From 9af745ce6701f712461635ca50e2d2a442661b0d Mon Sep 17 00:00:00 2001 From: Mauricio Siu Date: Mon, 13 Apr 2026 21:56:53 -0600 Subject: [PATCH] feat: add view mounts, view config, and terminal to container actions Add a new "View Mounts" action to the container dropdown that displays volume and bind mounts in a formatted table (type, source, destination, mode, read/write). Also add "View Config" and "Terminal" actions to the compose containers tab which previously only had logs and lifecycle actions. --- .../containers/show-compose-containers.tsx | 17 +++ .../docker/mounts/show-container-mounts.tsx | 112 ++++++++++++++++++ .../dashboard/docker/show/columns.tsx | 5 + 3 files changed, 134 insertions(+) create mode 100644 apps/dokploy/components/dashboard/docker/mounts/show-container-mounts.tsx diff --git a/apps/dokploy/components/dashboard/compose/containers/show-compose-containers.tsx b/apps/dokploy/components/dashboard/compose/containers/show-compose-containers.tsx index d156e8e1f..68260bc2d 100644 --- a/apps/dokploy/components/dashboard/compose/containers/show-compose-containers.tsx +++ b/apps/dokploy/components/dashboard/compose/containers/show-compose-containers.tsx @@ -36,6 +36,9 @@ import { TableRow, } from "@/components/ui/table"; import { api } from "@/utils/api"; +import { ShowContainerConfig } from "@/components/dashboard/docker/config/show-container-config"; +import { ShowContainerMounts } from "@/components/dashboard/docker/mounts/show-container-mounts"; +import { DockerTerminalModal } from "@/components/dashboard/docker/terminal/docker-terminal-modal"; const DockerLogsId = dynamic( () => @@ -217,6 +220,20 @@ const ContainerRow = ({ View Logs + + + + Terminal + { + const { data } = api.docker.getConfig.useQuery( + { + containerId, + serverId, + }, + { + enabled: !!containerId, + }, + ); + + const mounts: Mount[] = data?.Mounts ?? []; + + return ( + + + e.preventDefault()} + > + View Mounts + + + + + Container Mounts + + Volume and bind mounts for this container + + +
+ {mounts.length === 0 ? ( +
+ No mounts found for this container. +
+ ) : ( + + + + Type + Source + Destination + Mode + Read/Write + + + + {mounts.map((mount, index) => ( + + + {mount.Type} + + + {mount.Name || mount.Source} + + + {mount.Destination} + + + {mount.Mode || "-"} + + + + {mount.RW ? "RW" : "RO"} + + + + ))} + +
+ )} +
+
+
+ ); +}; diff --git a/apps/dokploy/components/dashboard/docker/show/columns.tsx b/apps/dokploy/components/dashboard/docker/show/columns.tsx index 33c104d97..a51cb8c62 100644 --- a/apps/dokploy/components/dashboard/docker/show/columns.tsx +++ b/apps/dokploy/components/dashboard/docker/show/columns.tsx @@ -10,6 +10,7 @@ import { } from "@/components/ui/dropdown-menu"; import { ShowContainerConfig } from "../config/show-container-config"; import { ShowDockerModalLogs } from "../logs/show-docker-modal-logs"; +import { ShowContainerMounts } from "../mounts/show-container-mounts"; import { RemoveContainerDialog } from "../remove/remove-container"; import { DockerTerminalModal } from "../terminal/docker-terminal-modal"; import { UploadFileModal } from "../upload/upload-file-modal"; @@ -123,6 +124,10 @@ export const columns: ColumnDef[] = [ containerId={container.containerId} serverId={container.serverId || ""} /> +