feat: v0.7.0 — inspect_container (full-path mount source)
New tool inspect_container surfaces the full configuration of a single container as the foundation for a future GUI-container → Compose migration workflow. Output covers image, status, restart policy, network mode + per-network IPs, port bindings, volume mounts, env vars, labels, entrypoint/command, links, and capabilities. Mount paths come from details.Mounts[].Source (full /volume1/... path), NOT from profile.volume_bindings[].host_volume_file — the latter is share-relative (e.g. /docker/foo for /volume1/docker/foo) and not directly Compose-usable. Verified live against the NAS; quirk documented in CLAUDE.md. DSM API: SYNO.Docker.Container/get with name JSON-encoded (action inspect does not exist and returns code 103). Hash-prefixed names are resolved transparently, matching the convention of the other container tools. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
@@ -33,12 +33,12 @@ Only a second consecutive failure is treated as a real auth problem.
|
||||
|
||||
---
|
||||
|
||||
## Implemented tools (34)
|
||||
## Implemented tools (35)
|
||||
|
||||
| Category | Tools |
|
||||
|---|---|
|
||||
| Projects | `list_projects`, `get_project_status`, `start_project`, `stop_project`, `redeploy_project`, `create_project`, `delete_project` |
|
||||
| Containers | `list_containers`, `get_container_status`, `get_container_logs`, `exec_in_container`, `container_stats`, `delete_container`, `start_container`, `stop_container`, `restart_container` |
|
||||
| Containers | `list_containers`, `get_container_status`, `get_container_logs`, `exec_in_container`, `container_stats`, `inspect_container`, `delete_container`, `start_container`, `stop_container`, `restart_container` |
|
||||
| Compose | `read_compose`, `update_compose`, `update_image_tag`, `update_env_var` |
|
||||
| Images | `check_image_updates`, `list_images`, `delete_image`, `inspect_image` |
|
||||
| Registry | `search_registry`, `list_image_tags`, `pull_image` |
|
||||
@@ -98,6 +98,17 @@ Only a second consecutive failure is treated as a real auth problem.
|
||||
start/stop/force-stop/restart/reset; calls to `pause`/`unpause` return
|
||||
"Method does not exist". `pause_container` and `unpause_container`
|
||||
were briefly shipped in 0.4.0 and removed in 0.4.1.
|
||||
- **`SYNO.Docker.Container/get` response — `profile.volume_bindings[].host_volume_file`
|
||||
is share-relative, not the full host path.** Live capture against a
|
||||
container with bind mount `/volume1/docker/homeassistant:/config`
|
||||
returned `host_volume_file = "/docker/homeassistant"` (21 chars,
|
||||
share-relative) in `profile`, while `details.Mounts[].Source` carried
|
||||
the full `/volume1/docker/homeassistant` and `details.HostConfig.Binds`
|
||||
the full `/volume1/docker/homeassistant:/config:rw`. For
|
||||
Compose-rebuild use cases the full path is required — `inspect_container`
|
||||
reads mount sources from `details.Mounts[].Source`, not from
|
||||
`profile.volume_bindings[].host_volume_file`. The DSM action `inspect`
|
||||
(no `get`) does not exist (code 103 "Method does not exist"); use `get`.
|
||||
|
||||
---
|
||||
|
||||
|
||||
Reference in New Issue
Block a user