Skip to main content

compose-logs

Read the logs of EVERY container in a Dokploy Docker Compose stack and highlight errors Arguments: <compose-name-or-id> [--tail <N>] [--since <1h>] [--search <term>] [--errors-only].

Source facts

Repository
Agents-Store/codex-plugins
Last source activity
October 3, 2026 at 23:16
Detected SKILL.md language
English
Stars
0
Forks
0

Install options

The review-first prompt is selected by default. You can switch to a direct command or download a local copy.

Review the source files

Read SKILL.md and any companion files shown by SkillsMP before deciding whether to install.

Showing SKILL.md

SKILL.md
Source instructions · Read-only preview
name
compose-logs
description
Read the logs of EVERY container in a Dokploy Docker Compose stack and highlight errors Arguments: <compose-name-or-id> [--tail <N>] [--since <1h>] [--search <term>] [--errors-only].
# Read All Compose Container Logs Reads the runtime logs of **every container** in a Docker Compose stack, aggregates them, and surfaces errors per container. This is the right tool when a multi-service stack is misbehaving and you don't yet know which service is at fault. Follow the `read-logs` skill (`${CLAUDE_PLUGIN_ROOT}/skills/read-logs/SKILL.md`), §2 — load it first. ## Arguments Format: `<compose-name-or-id> [--tail <N>] [--since <1h>] [--search <term>] [--errors-only]` - `compose-name-or-id` — required. Name or `composeId` of the compose stack. - `--tail` — lines per container (default `200`, max `10000`). - `--since` — time window: `all` or `<n>{s|m|h|d}` (e.g. `30m`, `2h`). Default `all`. - `--search` — server-side substring filter applied to every container's log. - `--errors-only` — show only lines matching the error patterns (see skill §6); hide clean output. Parse from "$ARGUMENTS". ## Process 1. **Resolve the stack.** - If given a name, `mcp__plugin_dokploy-dev_dokploy__compose-search { q: "<name>" }` → pick the match → `composeId`. - `mcp__plugin_dokploy-dev_dokploy__compose-one { composeId }` → read `appName` and `composeType`. 2. **Enumerate every container** (skill §2 step 2): - `composeType: "docker-compose"` → `mcp__plugin_dokploy-dev_dokploy__docker-getContainersByAppNameMatch { appName, appType: "docker-compose" }` - `composeType: "stack"` → `mcp__plugin_dokploy-dev_dokploy__docker-getStackContainersByAppName { appName }` - Fallback → `mcp__plugin_dokploy-dev_dokploy__docker-getContainers {}` and filter to names containing `appName`. - Collect each container's identifier (`containerId` / `name`) and current `state` / `status`. 3. **Loop — read logs for EACH container** (never stop at the first): ``` mcp__plugin_dokploy-dev_dokploy__compose-readLogs → { composeId, containerId: <each>, tail: <--tail>, since: <--since>, search: <--search?> } ``` 4. **Aggregate the output:** ``` ## Compose logs: <appName> (<composeType>, <N> containers) ### <containerId / service> — <state> (<status>) <last --tail lines; error lines surfaced first> ...repeat for every container... ### Summary - Containers down/unhealthy: <list> - Errors found: <count> across <containers> - Likely root cause: <the lowest-level failing service — e.g. a crashed db that others depend on> ``` With `--errors-only`, print just the matching lines per container and skip clean ones. 5. **Diagnose across containers.** A failure in one service often shows up as a symptom in another (a dead `db` → `ECONNREFUSED` in `web`). Identify the *lowest-level* failing container as the root cause, not the loudest one. 6. **Offer next steps:** - `/dokploy-dev:analyze <composeId>` — AI root-cause on the collected logs (`ai-analyzeLogs { aiId, logs, context: "runtime" }`). - `/dokploy-dev:debug <composeId>` — full failure decision tree (build log, Traefik, recovery). ## Example Usage ``` /dokploy-dev:compose-logs n8n-stack /dokploy-dev:compose-logs supabase --since 1h --search error /dokploy-dev:compose-logs my-stack --tail 500 --errors-only /dokploy-dev:compose-logs cmp_abc123 ```
View on GitHub