compose/pkg
Nicolas De Loof 64cbcb2276 fix: address image-identity review findings
- pullRequiredImages resolves each distinct pulled image once, after
  all pulls completed, for the host default platform — the exact way
  getLocalImagesDigests resolves already-local images. Resolving from
  each pull's goroutine, for the pulled platform, let the recorded
  digest depend on pull completion order when several services pull
  the same tag for different platforms (last-writer-wins), and made
  the first up after a pull recreate containers. Platform-pinned
  services keep getting their own platform's digest from
  serviceImageDigest. In dry-run nothing was actually pulled, so the
  local inspect is skipped — it reached the real daemon through a
  DryRunClient dispatch that no longer matched and failed with 'No
  such image'.
- explicit 'compose pull' treats daily/weekly/every_N windows as due:
  it is the only way to force a refresh ahead of the window.
- 'compose pull' no longer silently skips services declaring both
  provider: and image:.
- pre_start hook images go through the same mustPull interpreter on the
  up path as on the pull path, so refresh windows apply consistently.
- matchLocalManifest falls back to the inspect's flat platform fields
  when the lone available manifest carries no ImageData (locally built
  images), instead of reporting the platform unsatisfied and pulling a
  possibly local-only image.
- scale resolves DOCKER_DEFAULT_PLATFORM without validating
  build.platforms: a conflict on a service that isn't being built must
  not abort the command. run needs nothing: createOptions.Apply
  resolves and validates platforms on its path already.
- resolveImageVolumes documents the accepted one-time-recreate and
  retag-race tradeoffs.

Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2026-08-13 12:03:29 +02:00
..
api fix(build): resolve image volumes to a mountable name, not a manifest digest 2026-08-13 12:03:29 +02:00
bridge Update pkg/bridge/convert.go 2026-08-06 16:00:08 +02:00
compose fix: address image-identity review findings 2026-08-13 12:03:29 +02:00
dryrun fix(cp): return non-nil Content from dry-run CopyFromContainer 2026-07-30 11:37:49 +02:00
e2e fix(build): canonical content-digest producer, single image-label writer 2026-08-13 12:03:29 +02:00
mocks chore(deps): github.com/docker/cli v29.6.0 2026-06-22 09:00:18 +02:00
remote fix(oci): fetch artifact layers from blobs endpoint, not via Resolve 2026-08-03 14:56:34 +02:00
utils fix: make e2e tests pass reliably locally with Docker Desktop 2026-05-18 10:55:41 +02:00
watch test(watch): cover the permission branches as root 2026-08-11 14:10:40 +02:00