mirror of https://github.com/docker/cli.git
Merge pull request #4835 from thaJeztah/update_engine_api_removal
vendor: github.com/docker/docker 9e075f3808a5 (master, v26.0.0-dev)
This commit is contained in:
commit
79fa65e7b5
|
@ -12,7 +12,7 @@ require (
|
||||||
github.com/creack/pty v1.1.21
|
github.com/creack/pty v1.1.21
|
||||||
github.com/distribution/reference v0.5.0
|
github.com/distribution/reference v0.5.0
|
||||||
github.com/docker/distribution v2.8.3+incompatible
|
github.com/docker/distribution v2.8.3+incompatible
|
||||||
github.com/docker/docker v25.0.1-0.20240124114027-43ffb1ee9d5a+incompatible
|
github.com/docker/docker v25.0.1-0.20240207004304-9e075f3808a5+incompatible // master (v26.0.0-dev)
|
||||||
github.com/docker/docker-credential-helpers v0.8.1
|
github.com/docker/docker-credential-helpers v0.8.1
|
||||||
github.com/docker/go-connections v0.5.0
|
github.com/docker/go-connections v0.5.0
|
||||||
github.com/docker/go-units v0.5.0
|
github.com/docker/go-units v0.5.0
|
||||||
|
@ -23,7 +23,7 @@ require (
|
||||||
github.com/mattn/go-runewidth v0.0.15
|
github.com/mattn/go-runewidth v0.0.15
|
||||||
github.com/mitchellh/mapstructure v1.5.0
|
github.com/mitchellh/mapstructure v1.5.0
|
||||||
github.com/moby/patternmatcher v0.6.0
|
github.com/moby/patternmatcher v0.6.0
|
||||||
github.com/moby/swarmkit/v2 v2.0.0-20230911190601-f082dd7a0cee
|
github.com/moby/swarmkit/v2 v2.0.0-20240125134710-dcda100a8261
|
||||||
github.com/moby/sys/sequential v0.5.0
|
github.com/moby/sys/sequential v0.5.0
|
||||||
github.com/moby/sys/signal v0.7.0
|
github.com/moby/sys/signal v0.7.0
|
||||||
github.com/moby/term v0.5.0
|
github.com/moby/term v0.5.0
|
||||||
|
|
|
@ -54,8 +54,8 @@ github.com/distribution/reference v0.5.0/go.mod h1:BbU0aIcezP1/5jX/8MP0YiH4SdvB5
|
||||||
github.com/docker/distribution v2.7.1+incompatible/go.mod h1:J2gT2udsDAN96Uj4KfcMRqY0/ypR+oyYUYmja8H+y+w=
|
github.com/docker/distribution v2.7.1+incompatible/go.mod h1:J2gT2udsDAN96Uj4KfcMRqY0/ypR+oyYUYmja8H+y+w=
|
||||||
github.com/docker/distribution v2.8.3+incompatible h1:AtKxIZ36LoNK51+Z6RpzLpddBirtxJnzDrHLEKxTAYk=
|
github.com/docker/distribution v2.8.3+incompatible h1:AtKxIZ36LoNK51+Z6RpzLpddBirtxJnzDrHLEKxTAYk=
|
||||||
github.com/docker/distribution v2.8.3+incompatible/go.mod h1:J2gT2udsDAN96Uj4KfcMRqY0/ypR+oyYUYmja8H+y+w=
|
github.com/docker/distribution v2.8.3+incompatible/go.mod h1:J2gT2udsDAN96Uj4KfcMRqY0/ypR+oyYUYmja8H+y+w=
|
||||||
github.com/docker/docker v25.0.1-0.20240124114027-43ffb1ee9d5a+incompatible h1:zxis4E1+Q2Q7DEDD41XU3ZPtdn5gmtMY3+E6NNpvGWs=
|
github.com/docker/docker v25.0.1-0.20240207004304-9e075f3808a5+incompatible h1:L45ZCM6Y6gWhpPAMtfewHOXvW6a2QL8cTBoljMuUEHM=
|
||||||
github.com/docker/docker v25.0.1-0.20240124114027-43ffb1ee9d5a+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk=
|
github.com/docker/docker v25.0.1-0.20240207004304-9e075f3808a5+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk=
|
||||||
github.com/docker/docker-credential-helpers v0.8.1 h1:j/eKUktUltBtMzKqmfLB0PAgqYyMHOp5vfsD1807oKo=
|
github.com/docker/docker-credential-helpers v0.8.1 h1:j/eKUktUltBtMzKqmfLB0PAgqYyMHOp5vfsD1807oKo=
|
||||||
github.com/docker/docker-credential-helpers v0.8.1/go.mod h1:P3ci7E3lwkZg6XiHdRKft1KckHiO9a2rNtyFbZ/ry9M=
|
github.com/docker/docker-credential-helpers v0.8.1/go.mod h1:P3ci7E3lwkZg6XiHdRKft1KckHiO9a2rNtyFbZ/ry9M=
|
||||||
github.com/docker/go v1.5.1-1.0.20160303222718-d30aec9fd63c h1:lzqkGL9b3znc+ZUgi7FlLnqjQhcXxkNM/quxIjBVMD0=
|
github.com/docker/go v1.5.1-1.0.20160303222718-d30aec9fd63c h1:lzqkGL9b3znc+ZUgi7FlLnqjQhcXxkNM/quxIjBVMD0=
|
||||||
|
@ -166,8 +166,8 @@ github.com/mitchellh/mapstructure v1.5.0 h1:jeMsZIYE/09sWLaz43PL7Gy6RuMjD2eJVyua
|
||||||
github.com/mitchellh/mapstructure v1.5.0/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo=
|
github.com/mitchellh/mapstructure v1.5.0/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo=
|
||||||
github.com/moby/patternmatcher v0.6.0 h1:GmP9lR19aU5GqSSFko+5pRqHi+Ohk1O69aFiKkVGiPk=
|
github.com/moby/patternmatcher v0.6.0 h1:GmP9lR19aU5GqSSFko+5pRqHi+Ohk1O69aFiKkVGiPk=
|
||||||
github.com/moby/patternmatcher v0.6.0/go.mod h1:hDPoyOpDY7OrrMDLaYoY3hf52gNCR/YOUYxkhApJIxc=
|
github.com/moby/patternmatcher v0.6.0/go.mod h1:hDPoyOpDY7OrrMDLaYoY3hf52gNCR/YOUYxkhApJIxc=
|
||||||
github.com/moby/swarmkit/v2 v2.0.0-20230911190601-f082dd7a0cee h1:T7Mz81wbNduphN0195OfYadKSs/uQKr4zrKtsCSfQTc=
|
github.com/moby/swarmkit/v2 v2.0.0-20240125134710-dcda100a8261 h1:mjLf2jYrqtIS4LvLzg0gNyJR4rMXS4X5Bg1A4hOhVMs=
|
||||||
github.com/moby/swarmkit/v2 v2.0.0-20230911190601-f082dd7a0cee/go.mod h1:z90qBxgz/fNu4YjmMHi0hyPDKDitpOWzOJnvv9+KB2U=
|
github.com/moby/swarmkit/v2 v2.0.0-20240125134710-dcda100a8261/go.mod h1:oRJU1d0hrkkwCtouwfQGcIAKcVEkclMYoLWocqrg6gI=
|
||||||
github.com/moby/sys/sequential v0.5.0 h1:OPvI35Lzn9K04PBbCLW0g4LcFAJgHsvXsRyewg5lXtc=
|
github.com/moby/sys/sequential v0.5.0 h1:OPvI35Lzn9K04PBbCLW0g4LcFAJgHsvXsRyewg5lXtc=
|
||||||
github.com/moby/sys/sequential v0.5.0/go.mod h1:tH2cOOs5V9MlPiXcQzRC+eEyab644PWKGRYaaV5ZZlo=
|
github.com/moby/sys/sequential v0.5.0/go.mod h1:tH2cOOs5V9MlPiXcQzRC+eEyab644PWKGRYaaV5ZZlo=
|
||||||
github.com/moby/sys/signal v0.7.0 h1:25RW3d5TnQEoKvRbEKUGay6DCQ46IxAVTT9CUMgmsSI=
|
github.com/moby/sys/signal v0.7.0 h1:25RW3d5TnQEoKvRbEKUGay6DCQ46IxAVTT9CUMgmsSI=
|
||||||
|
|
|
@ -2,9 +2,18 @@ package api // import "github.com/docker/docker/api"
|
||||||
|
|
||||||
// Common constants for daemon and client.
|
// Common constants for daemon and client.
|
||||||
const (
|
const (
|
||||||
// DefaultVersion of Current REST API
|
// DefaultVersion of the current REST API.
|
||||||
DefaultVersion = "1.45"
|
DefaultVersion = "1.45"
|
||||||
|
|
||||||
|
// MinSupportedAPIVersion is the minimum API version that can be supported
|
||||||
|
// by the API server, specified as "major.minor". Note that the daemon
|
||||||
|
// may be configured with a different minimum API version, as returned
|
||||||
|
// in [github.com/docker/docker/api/types.Version.MinAPIVersion].
|
||||||
|
//
|
||||||
|
// API requests for API versions lower than the configured version produce
|
||||||
|
// an error.
|
||||||
|
MinSupportedAPIVersion = "1.24"
|
||||||
|
|
||||||
// NoBaseImageSpecifier is the symbol used by the FROM
|
// NoBaseImageSpecifier is the symbol used by the FROM
|
||||||
// command to specify that no base image is to be used.
|
// command to specify that no base image is to be used.
|
||||||
NoBaseImageSpecifier = "scratch"
|
NoBaseImageSpecifier = "scratch"
|
||||||
|
|
|
@ -8331,6 +8331,16 @@ paths:
|
||||||
description: "BuildKit output configuration"
|
description: "BuildKit output configuration"
|
||||||
type: "string"
|
type: "string"
|
||||||
default: ""
|
default: ""
|
||||||
|
- name: "version"
|
||||||
|
in: "query"
|
||||||
|
type: "string"
|
||||||
|
default: "1"
|
||||||
|
enum: ["1", "2"]
|
||||||
|
description: |
|
||||||
|
Version of the builder backend to use.
|
||||||
|
|
||||||
|
- `1` is the first generation classic (deprecated) builder in the Docker daemon (default)
|
||||||
|
- `2` is [BuildKit](https://github.com/moby/buildkit)
|
||||||
responses:
|
responses:
|
||||||
200:
|
200:
|
||||||
description: "no error"
|
description: "no error"
|
||||||
|
|
|
@ -14,6 +14,9 @@ type EndpointSettings struct {
|
||||||
IPAMConfig *EndpointIPAMConfig
|
IPAMConfig *EndpointIPAMConfig
|
||||||
Links []string
|
Links []string
|
||||||
Aliases []string // Aliases holds the list of extra, user-specified DNS names for this endpoint.
|
Aliases []string // Aliases holds the list of extra, user-specified DNS names for this endpoint.
|
||||||
|
// MacAddress may be used to specify a MAC address when the container is created.
|
||||||
|
// Once the container is running, it becomes operational data (it may contain a
|
||||||
|
// generated address).
|
||||||
MacAddress string
|
MacAddress string
|
||||||
// Operational data
|
// Operational data
|
||||||
NetworkID string
|
NetworkID string
|
||||||
|
|
|
@ -30,30 +30,9 @@ const (
|
||||||
ip6 ipFamily = "IPv6"
|
ip6 ipFamily = "IPv6"
|
||||||
)
|
)
|
||||||
|
|
||||||
// HasIPv6Subnets checks whether there's any IPv6 subnets in the ipam parameter. It ignores any invalid Subnet and nil
|
|
||||||
// ipam.
|
|
||||||
func HasIPv6Subnets(ipam *IPAM) bool {
|
|
||||||
if ipam == nil {
|
|
||||||
return false
|
|
||||||
}
|
|
||||||
|
|
||||||
for _, cfg := range ipam.Config {
|
|
||||||
subnet, err := netip.ParsePrefix(cfg.Subnet)
|
|
||||||
if err != nil {
|
|
||||||
continue
|
|
||||||
}
|
|
||||||
|
|
||||||
if subnet.Addr().Is6() {
|
|
||||||
return true
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return false
|
|
||||||
}
|
|
||||||
|
|
||||||
// ValidateIPAM checks whether the network's IPAM passed as argument is valid. It returns a joinError of the list of
|
// ValidateIPAM checks whether the network's IPAM passed as argument is valid. It returns a joinError of the list of
|
||||||
// errors found.
|
// errors found.
|
||||||
func ValidateIPAM(ipam *IPAM) error {
|
func ValidateIPAM(ipam *IPAM, enableIPv6 bool) error {
|
||||||
if ipam == nil {
|
if ipam == nil {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
@ -70,6 +49,10 @@ func ValidateIPAM(ipam *IPAM) error {
|
||||||
subnetFamily = ip6
|
subnetFamily = ip6
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if !enableIPv6 && subnetFamily == ip6 {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
|
||||||
if subnet != subnet.Masked() {
|
if subnet != subnet.Masked() {
|
||||||
errs = append(errs, fmt.Errorf("invalid subnet %s: it should be %s", subnet, subnet.Masked()))
|
errs = append(errs, fmt.Errorf("invalid subnet %s: it should be %s", subnet, subnet.Masked()))
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,14 +0,0 @@
|
||||||
# Legacy API type versions
|
|
||||||
|
|
||||||
This package includes types for legacy API versions. The stable version of the API types live in `api/types/*.go`.
|
|
||||||
|
|
||||||
Consider moving a type here when you need to keep backwards compatibility in the API. This legacy types are organized by the latest API version they appear in. For instance, types in the `v1p19` package are valid for API versions below or equal `1.19`. Types in the `v1p20` package are valid for the API version `1.20`, since the versions below that will use the legacy types in `v1p19`.
|
|
||||||
|
|
||||||
## Package name conventions
|
|
||||||
|
|
||||||
The package name convention is to use `v` as a prefix for the version number and `p`(patch) as a separator. We use this nomenclature due to a few restrictions in the Go package name convention:
|
|
||||||
|
|
||||||
1. We cannot use `.` because it's interpreted by the language, think of `v1.20.CallFunction`.
|
|
||||||
2. We cannot use `_` because golint complains about it. The code is actually valid, but it looks probably more weird: `v1_20.CallFunction`.
|
|
||||||
|
|
||||||
For instance, if you want to modify a type that was available in the version `1.21` of the API but it will have different fields in the version `1.22`, you want to create a new package under `api/types/versions/v1p21`.
|
|
|
@ -3,11 +3,15 @@ package ioutils // import "github.com/docker/docker/pkg/ioutils"
|
||||||
import (
|
import (
|
||||||
"context"
|
"context"
|
||||||
"io"
|
"io"
|
||||||
|
"runtime/debug"
|
||||||
|
"sync/atomic"
|
||||||
|
|
||||||
// make sure crypto.SHA256, crypto.sha512 and crypto.SHA384 are registered
|
// make sure crypto.SHA256, crypto.sha512 and crypto.SHA384 are registered
|
||||||
// TODO remove once https://github.com/opencontainers/go-digest/pull/64 is merged.
|
// TODO remove once https://github.com/opencontainers/go-digest/pull/64 is merged.
|
||||||
_ "crypto/sha256"
|
_ "crypto/sha256"
|
||||||
_ "crypto/sha512"
|
_ "crypto/sha512"
|
||||||
|
|
||||||
|
"github.com/containerd/log"
|
||||||
)
|
)
|
||||||
|
|
||||||
// ReadCloserWrapper wraps an io.Reader, and implements an io.ReadCloser
|
// ReadCloserWrapper wraps an io.Reader, and implements an io.ReadCloser
|
||||||
|
@ -16,10 +20,15 @@ import (
|
||||||
type ReadCloserWrapper struct {
|
type ReadCloserWrapper struct {
|
||||||
io.Reader
|
io.Reader
|
||||||
closer func() error
|
closer func() error
|
||||||
|
closed atomic.Bool
|
||||||
}
|
}
|
||||||
|
|
||||||
// Close calls back the passed closer function
|
// Close calls back the passed closer function
|
||||||
func (r *ReadCloserWrapper) Close() error {
|
func (r *ReadCloserWrapper) Close() error {
|
||||||
|
if !r.closed.CompareAndSwap(false, true) {
|
||||||
|
subsequentCloseWarn("ReadCloserWrapper")
|
||||||
|
return nil
|
||||||
|
}
|
||||||
return r.closer()
|
return r.closer()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -87,6 +96,7 @@ type cancelReadCloser struct {
|
||||||
cancel func()
|
cancel func()
|
||||||
pR *io.PipeReader // Stream to read from
|
pR *io.PipeReader // Stream to read from
|
||||||
pW *io.PipeWriter
|
pW *io.PipeWriter
|
||||||
|
closed atomic.Bool
|
||||||
}
|
}
|
||||||
|
|
||||||
// NewCancelReadCloser creates a wrapper that closes the ReadCloser when the
|
// NewCancelReadCloser creates a wrapper that closes the ReadCloser when the
|
||||||
|
@ -146,6 +156,17 @@ func (p *cancelReadCloser) closeWithError(err error) {
|
||||||
// Close closes the wrapper its underlying reader. It will cause
|
// Close closes the wrapper its underlying reader. It will cause
|
||||||
// future calls to Read to return io.EOF.
|
// future calls to Read to return io.EOF.
|
||||||
func (p *cancelReadCloser) Close() error {
|
func (p *cancelReadCloser) Close() error {
|
||||||
|
if !p.closed.CompareAndSwap(false, true) {
|
||||||
|
subsequentCloseWarn("cancelReadCloser")
|
||||||
|
return nil
|
||||||
|
}
|
||||||
p.closeWithError(io.EOF)
|
p.closeWithError(io.EOF)
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func subsequentCloseWarn(name string) {
|
||||||
|
log.G(context.TODO()).Error("subsequent attempt to close " + name)
|
||||||
|
if log.GetLevel() >= log.DebugLevel {
|
||||||
|
log.G(context.TODO()).Errorf("stack trace: %s", string(debug.Stack()))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
@ -1,6 +1,9 @@
|
||||||
package ioutils // import "github.com/docker/docker/pkg/ioutils"
|
package ioutils // import "github.com/docker/docker/pkg/ioutils"
|
||||||
|
|
||||||
import "io"
|
import (
|
||||||
|
"io"
|
||||||
|
"sync/atomic"
|
||||||
|
)
|
||||||
|
|
||||||
// NopWriter represents a type which write operation is nop.
|
// NopWriter represents a type which write operation is nop.
|
||||||
type NopWriter struct{}
|
type NopWriter struct{}
|
||||||
|
@ -29,9 +32,14 @@ func (f *NopFlusher) Flush() {}
|
||||||
type writeCloserWrapper struct {
|
type writeCloserWrapper struct {
|
||||||
io.Writer
|
io.Writer
|
||||||
closer func() error
|
closer func() error
|
||||||
|
closed atomic.Bool
|
||||||
}
|
}
|
||||||
|
|
||||||
func (r *writeCloserWrapper) Close() error {
|
func (r *writeCloserWrapper) Close() error {
|
||||||
|
if !r.closed.CompareAndSwap(false, true) {
|
||||||
|
subsequentCloseWarn("WriteCloserWrapper")
|
||||||
|
return nil
|
||||||
|
}
|
||||||
return r.closer()
|
return r.closer()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -63,7 +63,7 @@ func HasResource(res *api.GenericResource, resources []*api.GenericResource) boo
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
if res.GetDiscreteResourceSpec().Value < rtype.DiscreteResourceSpec.Value {
|
if res.GetDiscreteResourceSpec().Value > rtype.DiscreteResourceSpec.Value {
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -53,7 +53,7 @@ github.com/docker/distribution/registry/client/transport
|
||||||
github.com/docker/distribution/registry/storage/cache
|
github.com/docker/distribution/registry/storage/cache
|
||||||
github.com/docker/distribution/registry/storage/cache/memory
|
github.com/docker/distribution/registry/storage/cache/memory
|
||||||
github.com/docker/distribution/uuid
|
github.com/docker/distribution/uuid
|
||||||
# github.com/docker/docker v25.0.1-0.20240124114027-43ffb1ee9d5a+incompatible
|
# github.com/docker/docker v25.0.1-0.20240207004304-9e075f3808a5+incompatible
|
||||||
## explicit
|
## explicit
|
||||||
github.com/docker/docker/api
|
github.com/docker/docker/api
|
||||||
github.com/docker/docker/api/types
|
github.com/docker/docker/api/types
|
||||||
|
@ -184,7 +184,7 @@ github.com/mitchellh/mapstructure
|
||||||
## explicit; go 1.19
|
## explicit; go 1.19
|
||||||
github.com/moby/patternmatcher
|
github.com/moby/patternmatcher
|
||||||
github.com/moby/patternmatcher/ignorefile
|
github.com/moby/patternmatcher/ignorefile
|
||||||
# github.com/moby/swarmkit/v2 v2.0.0-20230911190601-f082dd7a0cee
|
# github.com/moby/swarmkit/v2 v2.0.0-20240125134710-dcda100a8261
|
||||||
## explicit; go 1.18
|
## explicit; go 1.18
|
||||||
github.com/moby/swarmkit/v2/api
|
github.com/moby/swarmkit/v2/api
|
||||||
github.com/moby/swarmkit/v2/api/deepcopy
|
github.com/moby/swarmkit/v2/api/deepcopy
|
||||||
|
|
Loading…
Reference in New Issue