Commit Graph

9952 Commits

Author SHA1 Message Date
Sebastiaan van Stijn e5d26a8d40
build: allow BuildKit to be used on Windows daemons that advertise it
Commit 6fef143dbc switched the CLI to use
BuildKit by default, but as part of that removed the use of the
BuildkitVersion field as returned by Ping.

Some follow-up changes in commits e38e6c51ff and
e7a8748b93 updated the logic for detecting whether
BuildKit should be used or the legacy builder, but hard-coded using the
legacy builder for Windows daemons.

While Windows / WCOW does not yet support BuildKit by default, there is
work in progress to implement it, so we should not hard-code the assumption
that a Windows daemon cannot support BuildKit.

On the daemon-side, [moby@7b153b9] (Docker v23.0) changed the default as
advertised by the daemon to be BuildKit for Linux daemons. That change
still hardcoded BuildKit to be unsupported for Windows daemons (and does
not yet allow overriding the config), but this may change for future
versions of the daemon, or test-builds.

This patch:

- Re-introduces checks for the BuildkitVersion field in the "Ping" response.
- If the Ping response from the daemon advertises that it supports BuildKit,
  the CLI will now use BuildKit as builder.
- If we didn't get a Ping response, or the Ping response did NOT advertise
  that the daemon supported BuildKit, we continue to use the current
  defaults (BuildKit for Linux daemons, and the legacy builder for Windows)
- Handling of the DOCKER_BUILDKIT environment variable is unchanged; for
  CLI.BuildKitEnabled, DOCKER_BUILDKIT always takes precedence, and for
  processBuilder the value is taken into account, but will print a warning
  when BuildKit is disabled and a Linux daemon is used. For Windows daemons,
  no warning is printed.

[moby@7b153b9]: 7b153b9e28

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2024-06-20 02:49:22 +02:00
Sebastiaan van Stijn 55a1f6eb73
cli-plugins/manager: add GoDoc for getPluginDirs, defaultSystemPluginDirs
Add some documentation about their purpose, and document order of preference
when resolving plugins.

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2024-06-19 14:02:40 +02:00
Sebastiaan van Stijn 4f00eee524
vendor: github.com/spf13/cobra v1.8.1
- release notes: https://github.com/spf13/cobra/releases/tag/v1.8.1
- full diff: https://github.com/spf13/cobra/compare/v1.8.0...v1.8.1

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2024-06-18 21:52:58 +02:00
Sebastiaan van Stijn 00b0eb7781
update go-md2man to v2.0.4
full diff: https://github.com/cpuguy83/go-md2man/compare/v2.0.4...v2.0.4

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2024-06-18 21:47:47 +02:00
Sebastiaan van Stijn b0793613a6
Dockerfile: update buildx to v0.15.1
This is the version used in the dev-container, and for testing.

release notes:
https://github.com/docker/buildx/releases/tag/v0.15.1

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2024-06-18 21:33:02 +02:00
Sebastiaan van Stijn 64206aef76
Merge pull request #5172 from thaJeztah/deprecate_graphdriver_plugins
Deprecate experimental graphdriver plugins
2024-06-18 17:14:00 +02:00
Sebastiaan van Stijn 0bc092496f
deprecate experimental graphdriver plugins
[Graphdriver plugins] are an experimental feature that allow extending the
Docker Engine with custom storage drivers for storing images and containers.
This feature was not maintained since its inception, and will no longer be
supported in upcoming releases.

Users of this feature are recommended to instead configure the Docker Engine
to use the [containerd image store], and a custom [snapshotter].

[Graphdriver plugins]: https://github.com/docker/cli/blob/v26.1.4/docs/extend/plugins_graphdriver.md
[containerd image store]: 31a16f1da2/content/storage/containerd.md
[snapshotter]: https://github.com/containerd/containerd/tree/v1.7.18/docs/snapshotters

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2024-06-18 16:47:00 +02:00
Sebastiaan van Stijn 1f1b70dfdf
docs: add deprecation warning to experimental grapdriver plugins
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2024-06-18 16:18:07 +02:00
Alano Terblanche a4bfd8c744
feat: add a global sigint/sigterm handler as a fallback to ctx cancellation
Signed-off-by: Alano Terblanche <18033717+Benehiko@users.noreply.github.com>
2024-06-18 15:42:34 +02:00
Sebastiaan van Stijn 468a76779d
Merge pull request #5169 from thaJeztah/bump_swarmkit
vendor: github.com/moby/swarmkit/v2 v2.0.0-20240611172349-ea1a7cec35cb
2024-06-18 15:04:39 +02:00
Sebastiaan van Stijn f52570645c
Merge pull request #5165 from thaJeztah/gha_test_27
gha: e2e: test against v27.0 release candidates
2024-06-18 14:59:58 +02:00
Sebastiaan van Stijn 32031fb5ab
Merge pull request #5167 from thaJeztah/bump_engine
vendor: github.com/docker/docker v27.0.0-rc.2
2024-06-18 14:59:38 +02:00
Sebastiaan van Stijn eae63069e6
vendor: github.com/moby/swarmkit/v2 v2.0.0-20240611172349-ea1a7cec35cb
Update the version to match what's used in docker/docker.

Full diff: c1c857e2dc...ea1a7cec35

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2024-06-18 14:32:49 +02:00
Sebastiaan van Stijn 3d017f30d6
vendor: github.com/docker/docker v27.0.0-rc.2
No diff as it's the same commit, but tagged. Just for transparency to
allow seeing differences between rc's.

full diff: https://github.com/docker/docker/compare/caf502a0bc44...v27.0.0-rc.2

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2024-06-18 14:03:41 +02:00
Sebastiaan van Stijn 20cba0a2ee
Merge pull request #5164 from thaJeztah/bump_version
bump version to v27.0.1-dev
2024-06-18 13:59:34 +02:00
Sebastiaan van Stijn e0972e94b8
gha: e2e: test against v27.0 release candidates
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2024-06-18 13:32:40 +02:00
Sebastiaan van Stijn 43210216ff
bump version to v27.0.1-dev
This file is only used as default if no version is specified. We
should probably get rid of this, but let's update it to better
reflect the version that developer builds are building.

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2024-06-18 13:29:00 +02:00
Sebastiaan van Stijn 70b53a0c15
Merge pull request #5163 from thaJeztah/bump_gobuild_tags
Update go:build comments to go1.21
2024-06-18 13:23:59 +02:00
Sebastiaan van Stijn c07cee05e2
Update go:build comments to go1.21
Match the minimum version that's specified on our vendor.mod.

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2024-06-18 12:17:13 +02:00
Sebastiaan van Stijn 860a139930
Merge pull request #5162 from thaJeztah/fix_goversion
cli/command/image: add go:build tag to prevent downgrading go version
2024-06-18 12:15:24 +02:00
Sebastiaan van Stijn 1fd8e2434b
cli/command/image: add go:build tag to prevent downgrading go version
Before this:

    make shell
    make -C ./internal/gocompat/
    ...

    GO111MODULE=on go test -v
    # github.com/docker/cli/cli/command/image
    ../../cli/command/image/push.go:177:62: predeclared any requires go1.18 or later (-lang was set to go1.16; check go.mod)
    FAIL	gocompat [build failed]
    make: *** [Makefile:3: verify] Error 1
    make: Leaving directory '/go/src/github.com/docker/cli/internal/gocompat'

After this patch:

    make shell
    make -C ./internal/gocompat/
    ...

    GO111MODULE=on go test -v
    === RUN   TestModuleCompatibllity
        main_test.go:133: all packages have the correct go version specified through //go:build
    --- PASS: TestModuleCompatibllity (0.00s)
    PASS
    ok  	gocompat	0.007s
    make: Leaving directory '/go/src/github.com/docker/cli/internal/gocompat'

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2024-06-18 11:59:39 +02:00
Sebastiaan van Stijn 69041853a8
Merge pull request #5161 from docker/dependabot/github_actions/docker/bake-action-5
build(deps): bump docker/bake-action from 4 to 5
2024-06-18 10:48:02 +02:00
dependabot[bot] c8f5d4cc6d
build(deps): bump docker/bake-action from 4 to 5
Bumps [docker/bake-action](https://github.com/docker/bake-action) from 4 to 5.
- [Release notes](https://github.com/docker/bake-action/releases)
- [Commits](https://github.com/docker/bake-action/compare/v4...v5)

---
updated-dependencies:
- dependency-name: docker/bake-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-06-18 08:07:28 +00:00
Sebastiaan van Stijn e06bee6999
Merge pull request #5160 from vvoland/docker-27.0-rc
vendor: github.com/docker/docker caf502a0bc44 (v27.0.0-dev)
2024-06-17 17:41:59 +02:00
Paweł Gronowski 3b0d297aab
vendor: github.com/docker/docker caf502a0bc44 (v27.0.0-dev)
full diff: ec4bac431c...caf502a0bc

Signed-off-by: Paweł Gronowski <pawel.gronowski@docker.com>
2024-06-17 17:08:30 +02:00
Paweł Gronowski bc291f0c98
Merge pull request #5158 from vvoland/docker-27.0-rc
vendor: github.com/docker/docker ec4bac431c88 (v27.0.0-dev)
2024-06-17 10:29:38 +02:00
Paweł Gronowski 11a3d8728b
vendor: github.com/docker/docker ec4bac431c88 (v27.0.0-dev)
full diff: ba69bd9c1e...ec4bac431c

Signed-off-by: Paweł Gronowski <pawel.gronowski@docker.com>
2024-06-17 10:18:07 +02:00
Sebastiaan van Stijn d69d501f69
Merge pull request #5155 from vvoland/docker-27.0-rc
vendor: github.com/docker/docker ba69bd9c1e48 (v27.0.0-rc.2-dev)
2024-06-14 22:36:48 +02:00
Paweł Gronowski 1bfec63b9f
vendor: github.com/docker/docker ba69bd9c1e48 (v27.0.0-rc.2-dev)
full diff: https://github.com/docker/docker/compare/v27.0.0-rc.1...ba69bd9c1e48

Signed-off-by: Paweł Gronowski <pawel.gronowski@docker.com>
2024-06-14 21:42:52 +02:00
Sebastiaan van Stijn 8376b3e428
use local ConvertToHostname() implementation
Commit 27b2797f7d added a local implementation
of this function, so let's use the local variant to (slightly) reduce the
dependency on moby's registry package.

Also made some minor cleanups.

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2024-06-14 00:25:21 +02:00
Sebastiaan van Stijn 925e7d6870
Merge pull request #5153 from thaJeztah/bump_x_deps
vendor: golang.org/x/sys v0.19.0, golang.org/x/term v0.19.0, golang.org/x/crypto v0.22.0, golang.org/x/net v0.24.0
2024-06-13 23:41:10 +02:00
Sebastiaan van Stijn 4ea91a73ee
vendor: golang.org/x/net v0.24.0
no changes in vendored code

full diff: https://github.com/golang/net/compare/v0.23.0...v0.24.0

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2024-06-13 18:19:48 +02:00
Sebastiaan van Stijn 91b63ac450
vendor: golang.org/x/crypto v0.22.0
no changes in vendored code

full diff: https://github.com/golang/crypto/compare/v0.21.0...v0.22.0

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2024-06-13 18:18:36 +02:00
Sebastiaan van Stijn a2ccd3eb00
vendor: golang.org/x/term v0.19.0
no changes in vendored code

full diff: https://github.com/golang/term/compare/v0.18.0...v0.19.0

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2024-06-13 18:17:46 +02:00
Sebastiaan van Stijn 634b19f5ed
vendor: golang.org/x/sys v0.19.0
full diff: https://github.com/golang/sys/compare/v0.18.0...v0.19.0

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2024-06-13 18:14:41 +02:00
Paweł Gronowski 8bcd7f3ee1
Merge pull request #5152 from thaJeztah/bump_engine_27.0.0-rc.1
vendor: github.com/docker/docker v27.0.0-rc.1
2024-06-13 11:02:51 +02:00
Sebastiaan van Stijn 872935f1c0
vendor: github.com/docker/docker v27.0.0-rc.1
no changes in vendored code

full diff: https://github.com/docker/docker/compare/bcd280a3ed2d...v27.0.0-rc.1

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2024-06-12 23:46:01 +02:00
Sebastiaan van Stijn 9dabf16f76
Merge pull request #5146 from laurazard/close-plugin-server
plugins: cleanup sockets when done
2024-06-12 15:00:55 +02:00
Paweł Gronowski 504162642f
Merge pull request #5151 from vvoland/docker-27.0-rc
vendor: github.com/docker/docker v27.0.0-dev (bcd280a3ed2d)
2024-06-12 14:52:00 +02:00
Paweł Gronowski 1fc73b470b
vendor: github.com/docker/docker v27.0.0-dev (bcd280a3ed2d)
full diff: 9d9488468f...bcd280a3ed

Signed-off-by: Paweł Gronowski <pawel.gronowski@docker.com>
2024-06-12 13:59:03 +02:00
Sebastiaan van Stijn 540b28e7bb
Merge pull request #5150 from thaJeztah/extend_non_tls_api_deprecation
docs: extend deprecation target for non-TLS API
2024-06-12 13:58:10 +02:00
Sebastiaan van Stijn 1671ee8b49
Merge pull request #5142 from thaJeztah/deprecate_image_config_fields
Deprecate non-standard (config) fields in image inspect output
2024-06-12 13:53:39 +02:00
Sebastiaan van Stijn e9c0fc330c
docs: extend deprecation target for non-TLS API
No work has started yet on the deprecation, so extending the time-
window.

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2024-06-12 13:40:43 +02:00
Sebastiaan van Stijn 70118aebef
Merge pull request #5148 from thaJeztah/remove_deprecated_eventhandler
cli/command: remove deprecated EventHandler, InitEventHandler
2024-06-12 12:55:51 +02:00
Laura Brehm 3dcc653533
plugins: cleanup sockets when done
Since 509123f935, we've been leaking sockets
in the filesystem on platforms where abstract sockets aren't supported.

That change relied on Go to cleanup our sockets for us, which Go will happily
do as long as we make sure to close the listener, which we weren't previously
doing unless to signal the plugin to terminate.

This change adds a deferred call to `PluginServer.Close()`, which makes sure we
close the plugin server at the end of the plugin execution, so that we never exit
without cleaning up.

Signed-off-by: Laura Brehm <laurabrehm@hey.com>
2024-06-12 11:16:10 +01:00
Paweł Gronowski 7fbadef49b
Merge pull request #5147 from thaJeztah/bump_platforms
vendor: github.com/containerd/platforms v0.2.1
2024-06-12 09:48:00 +02:00
Sebastiaan van Stijn 8c6e43fd07
Merge pull request #5143 from vvoland/cli-err-wrapstream
cli: Wrap Err stream
2024-06-12 02:24:48 +02:00
Sebastiaan van Stijn b23bc8cacd
Merge pull request #5144 from onestay/onestay/fix-link
cli/command/registry: fix link to credential stores
2024-06-12 02:15:12 +02:00
Sebastiaan van Stijn f80d7182ca
cli/command: remove deprecated EventHandler, InitEventHandler
These were deprecated in 46afd26c45
in v26.0, and have no known users.

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2024-06-12 01:21:51 +02:00
Sebastiaan van Stijn ad62b68693
vendor: github.com/containerd/platforms v0.2.1
- Remove hcsshim import from repo
    - un-exports GetOsVersion
- Update windows matcher to not compare empty os version

full diff: https://github.com/containerd/platforms/compare/v0.2.0...v0.2.1

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2024-06-12 00:57:47 +02:00