What's Changed
ℹ️ This release adds partial support for jobs: only manually-triggered jobs are supported for now, scheduled jobs are not yet available. Full job support will land once the corresponding Docker Engine support is merged.
✨ Improvements
Jobs
Provider services
- Feat(provider): get-service-config provider request by @ndeloof in #14175
- Feat(provider): publish-endpoint deploys a network relay for provider services by @ndeloof in #14193
- Get-relay-info tells providers where to bind for the relay by @ndeloof in #14258
- Feat(compose): dedicated network for the provider relay link by @ndeloof in #14275
- Provider services take part in the image phase, with image distribution on demand by @ndeloof in #14252
Other
- Feat(compose): warn on unsupported compose-file attributes by @glours in #14196
- PRIVATE_PORT optional for
docker compose portby @maxproske in #13577
🐛 Fixes
- Fix(build): hand unresolved 'auto' progress mode to bake by @ndeloof in #14194
- Fix(watch): coalesce rebuilds triggered during a burst of file changes by @glours in #14202
- Fix(port): preserve tie order for dual-stack port publishers by @glours in #14213
- Fix(publish): warn when push falls back from OCI 1.1 to OCI 1.0 by @htoyoda18 in #14146
- Fix: detect externally stopped and removed containers in up monitor by @glours in #13990
- Fix(dry-run): commit no longer creates a real image; the interception set becomes declarative by @ndeloof in #14150
- Fix(up): drop benign context.Canceled noise from the final report by @ndeloof in #14227
- Fix(relay): reconnect to new networks when routes are unchanged by @ndeloof in #14236
- Fix(provider): clean up stale relay and guard start/restart against it by @ndeloof in #14238
- Fix(hash): pin the service config-hash byte layout, decoupled from compose-go struct refactorings by @ndeloof in #14215
- Fix(hash): repair main after #14093/#14215 merged in reverse order by @ndeloof in #14253
- Fix(logs): restart re-attach loses a fast run's output — found by deflaking e2e by @ndeloof in #14140
- Fix: provider migration condemns the service's stale replicas by @ndeloof in #14264
- Fix/down rmi dangling images by @glours in #14266
- Fix/dry run service completed successfully 14269 by @glours in #14270
- Fix: honor --parallel across all bulk engine-call fan-outs by @glours in #14177
- Fix: adapt to compose-go v2.16.1 promoting x-initialSync silently by @glours in #14281
🔧 Internal
- Remove jonboulle/clockwork for testing/synctest by @thaJeztah in #14185
- Rebuild the TTY progress renderer on a model/layout/screen split by @ndeloof in #14051
- Golangci-lint: enable perfsprint linter by @thaJeztah in #14207
- Cmd/prompt: remove uses of github.com/AlecAivazis/survey/v2 by @thaJeztah in #14161
- Chore: update docker-agent-action to v2.0.8 by @docker-agent in #14197
- Chore: update docker-agent-action to v2.0.9 by @docker-agent in #14225
- Test(e2e): wait on state, not on an unsynchronized log line by @ndeloof in #14228
- E2e coverage for git and OCI remote stacks by @ndeloof in #14226
- Ci: lint, vet and test relay/ as its own module by @ndeloof in #14235
- Test(e2e): reproduce #14223 -- additional_contexts to a disabled service by @ndeloof in #14242
- Test(e2e): reproduce --project-directory ignored on an oci:// project (#14224) by @ndeloof in #14234
- Test(e2e): fix TestPullFailure's daemon-specific error assertion by @ricardobranco777 in #14245
- Plan engine: reconciler plans the start phase (epic #14081, lot 1) by @ndeloof in #14200
- Add AI Policy by @glours in #13550
- Pre_start hook runners become reconciliation-plan resources by @ndeloof in #14221
- Chore: remove duplicate 'publish' registration under 'alpha' by @glours in #14272
- Dependabot: disable cooldown for compose-spec, docker, moby modules by @thaJeztah in #14276
⚙️ Dependencies
- Fix(deps): github.com/containerd/containerd/v2 v2.3.5 by @thaJeztah in #14183
- Build(deps): bump softprops/action-gh-release from 3.0.2 to 3.0.3 by @dependabot[bot] in #14195
- Fix(deps): github.com/moby/sys/userns v0.2.1 by @thaJeztah in #14199
- Build(deps): bump golang.org/x/sys from 0.47.0 to 0.48.0 by @dependabot[bot] in #14205
- Build(deps): bump golang.org/x/sync from 0.22.0 to 0.23.0 by @dependabot[bot] in #14206
- Build(deps): bump github.com/mattn/go-runewidth from 0.0.23 to 0.0.29 by @dependabot[bot] in #14208
- Build(deps): bump tags.cncf.io/container-device-interface from 1.1.0 to 1.1.1 by @dependabot[bot] in #14218
- Build(deps): bump github.com/moby/moby/api from 1.55.0 to 1.56.0 by @dependabot[bot] in #14211
- Feat(deps): github.com/docker/cli v29.8.0 by @thaJeztah in #14138
- Build(deps): bump github.com/mattn/go-shellwords from 1.0.14 to 1.0.15 by @dependabot[bot] in #14246
- Build(deps): bump the docker-actions group across 1 directory with 3 updates by @dependabot[bot] in #14254
- Build(deps): github.com/DefangLabs/secret-detector 3e28d7ed64df by @thaJeztah in #14240
- Build(deps): bump codecov/codecov-action from 7.0.0 to 7.1.0 by @dependabot[bot] in #14247
- Build(deps): bump github/codeql-action/upload-sarif from 4.37.9 to 4.38.0 by @dependabot[bot] in #14231
- Build(deps): bump github.com/mattn/go-runewidth from 0.0.29 to 0.0.30 by @dependabot[bot] in #14239
- Build(deps): bump codecov/codecov-action from 7.1.0 to 7.1.1 by @dependabot[bot] in #14256
- Build(deps): bump github.com/docker/cli from 29.8.0+incompatible to 29.8.1+incompatible by @dependabot[bot] in #14255
- Build(deps): bump github.com/docker/cli from 29.8.1+incompatible to 29.8.2+incompatible by @dependabot[bot] in #14279
- Build(deps): bump github/codeql-action/upload-sarif from 4.38.0 to 4.38.2 by @dependabot[bot] in #14280
- Build(deps): bump github.com/moby/buildkit from 0.33.0 to 0.33.1 by @dependabot[bot] in #14277
- Build(deps): bump google.golang.org/grpc from 1.83.2 to 1.84.0 by @dependabot[bot] in #14262
- Build(deps): bump moby/moby and containerd/containerd/v2 by @ndeloof in #14282
Full Changelog: v5.5.1...v5.6.0