Skip to content

feat: add view mounts, config, and terminal to container actions#4221

Merged
Siumauricio merged 1 commit intocanaryfrom
feat/container-view-mounts
Apr 14, 2026
Merged

feat: add view mounts, config, and terminal to container actions#4221
Siumauricio merged 1 commit intocanaryfrom
feat/container-view-mounts

Conversation

@Siumauricio
Copy link
Copy Markdown
Contributor

@Siumauricio Siumauricio commented Apr 14, 2026

Summary

  • Add a new View Mounts action to the container dropdown that displays volume and bind mounts in a clean table (type, source, destination, mode, read/write)
  • Add View Config, View Mounts, and Terminal actions to compose containers tab, which previously only had logs and lifecycle actions
  • Reuses existing docker inspect query — no new API endpoints needed

Greptile Summary

This PR adds View Mounts, View Config, and Terminal actions to the compose containers tab, and adds View Mounts to the standalone Docker containers table — all by reusing the existing api.docker.getConfig query with no new API endpoints. The implementation is consistent with the patterns already established by ShowContainerConfig and DockerTerminalModal.

Confidence Score: 5/5

  • Safe to merge; the single finding is a minor UX polish item (missing loading indicator) that does not affect correctness.
  • No P0 or P1 issues found. The new ShowContainerMounts component correctly reuses the existing getConfig query (React Query deduplicates it with ShowContainerConfig), nesting inside Radix dialogs is safe given the outer logs-dialog is always closed when the new modals are triggered, and the rest of the changes are straightforward drop-ins following established patterns.
  • No files require special attention.

Reviews (1): Last reviewed commit: "feat: add view mounts, view config, and ..." | Re-trigger Greptile

Greptile also left 1 inline comment on this PR.

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.
@dosubot dosubot bot added size:L This PR changes 100-499 lines, ignoring generated files. enhancement New feature or request labels Apr 14, 2026
@Siumauricio Siumauricio merged commit 90f9791 into canary Apr 14, 2026
5 checks passed
@Siumauricio Siumauricio deleted the feat/container-view-mounts branch April 14, 2026 03:58
Comment on lines +68 to +70
{mounts.length === 0 ? (
<div className="text-center text-muted-foreground py-8">
No mounts found for this container.
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Missing loading state conflates "no mounts" with "still fetching"

When the dialog is opened before the query resolves, mounts is [] (the ?? [] fallback) and the "No mounts found" empty-state message is displayed — indistinguishable from a container that genuinely has no mounts. Consider checking isPending to show a loading indicator.

Suggested change
{mounts.length === 0 ? (
<div className="text-center text-muted-foreground py-8">
No mounts found for this container.
{isPending ? (
<div className="text-center text-muted-foreground py-8">
Loading mounts…
</div>
) : mounts.length === 0 ? (
<div className="text-center text-muted-foreground py-8">
No mounts found for this container.
</div>

You'll need to destructure isPending from the useQuery call:

const { data, isPending } = api.docker.getConfig.useQuery();

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request size:L This PR changes 100-499 lines, ignoring generated files.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant