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:
@@ -2,6 +2,40 @@
|
||||
|
||||
All notable changes to this project will be documented in this file.
|
||||
|
||||
## [0.7.0] - 2026-05-18
|
||||
|
||||
### Added
|
||||
|
||||
**`inspect_container`** — new tool that returns the full configuration
|
||||
of a single container, intended as the foundation for a future
|
||||
GUI-container → Compose migration workflow.
|
||||
|
||||
- API: `SYNO.Docker.Container/get` with `name` JSON-encoded (the same
|
||||
endpoint already used by `get_container_status` and `delete_container`,
|
||||
but called directly with a focus on the migration-relevant fields).
|
||||
The DSM action `inspect` (no `get`) does not exist and returns DSM
|
||||
code 103 — use `get`.
|
||||
- Output covers: image, status / running, restart policy, network
|
||||
mode and per-network IP addresses, port bindings, volume mounts
|
||||
(with FULL `/volume1/...` host path — see DSM quirk below),
|
||||
environment variables, labels, entrypoint / command, links, and
|
||||
capabilities / privileged.
|
||||
- Hash-prefixed container names (`abcdef012345_myservice`) are resolved
|
||||
to the actual DSM name for the API call and stripped from the
|
||||
display header — same convention as the other container tools.
|
||||
|
||||
### Documented (DSM quirk)
|
||||
|
||||
**`profile.volume_bindings[].host_volume_file` is share-relative**, not
|
||||
the full host path. A live capture against a container with a
|
||||
`/volume1/docker/homeassistant` bind mount returned
|
||||
`host_volume_file = "/docker/homeassistant"` in `profile`, while
|
||||
`details.Mounts[].Source` carried the full
|
||||
`/volume1/docker/homeassistant`. For a Compose-rebuild use case the
|
||||
full path is required — `inspect_container` therefore reads mount
|
||||
sources from `details.Mounts[].Source`, not from
|
||||
`profile.volume_bindings[].host_volume_file`. Recorded in CLAUDE.md.
|
||||
|
||||
## [0.6.0] - 2026-05-18
|
||||
|
||||
### Changed
|
||||
|
||||
Reference in New Issue
Block a user