You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
podman rejects a relative --mount target for every type ("must be an
absolute path"); docker accepts one, so scope A's long-form volumes
silently emitted a script that fails on podman -- a rule-two gap,
inconsistent with the short-form anonymous-volume refusal. A ${VAR}
target is carved out (host-dependent), matching every other
values.has_variable case in parsing.py.
Also corrects two doc-accuracy issues found in final review:
'image' is a deferred parser gap (docker accepts, podman can express
it), not a permanent rule-two refusal like cluster/npipe; and
tmpfs-with-source is a podman rule-two refusal, not a docker-schema
rule (docker accepts it).
Copy file name to clipboardExpand all lines: planning/changes/2026-07-16.05-volumes-long-form.md
+22-12Lines changed: 22 additions & 12 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,5 +1,5 @@
1
1
---
2
-
summary: Accept the long-form (mapping) `volumes` entry — `{type, source, target, read_only, consistency}` for `type` in bind/volume/tmpfs — matching `docker compose config` v5.1.2, emitting `podman run --mount`; nested option maps and the cluster/npipe/image types stay refused (the former a tracked scope follow-up, the latter rule-two refusals podman cannot express).
2
+
summary: Accept the long-form (mapping) `volumes` entry — `{type, source, target, read_only, consistency}` for `type` in bind/volume/tmpfs — matching `docker compose config` v5.1.2, emitting `podman run --mount`; nested option maps and the `image` type stay refused as a tracked deferred-parser gap (podman could express `image`; scope A doesn't parse it yet); `cluster`/`npipe` stay refused as permanent rule-two limitations podman cannot express.
0 commit comments