diff --git a/go.mod b/go.mod index 27934025ec..a8f744c25d 100644 --- a/go.mod +++ b/go.mod @@ -7,15 +7,15 @@ require ( github.com/Microsoft/go-winio v0.6.2 github.com/acarl005/stripansi v0.0.0-20180116102854-5a71ef0e047d github.com/buger/goterm v1.0.4 - github.com/compose-spec/compose-go/v2 v2.1.2 + github.com/compose-spec/compose-go/v2 v2.1.3 github.com/containerd/console v1.0.4 github.com/containerd/containerd v1.7.18 github.com/davecgh/go-spew v1.1.1 github.com/distribution/reference v0.6.0 github.com/docker/buildx v0.15.0 - github.com/docker/cli v26.1.4+incompatible + github.com/docker/cli v27.0.0-rc.2.0.20240618151400-64206aef767d+incompatible github.com/docker/cli-docs-tool v0.7.0 - github.com/docker/docker v26.1.4+incompatible + github.com/docker/docker v27.0.0-rc.2.0.20240620082716-a24af26aba4a+incompatible // v27.0.0-rc.2 github.com/docker/go-connections v0.5.0 github.com/docker/go-units v0.5.0 github.com/eiannone/keyboard v0.0.0-20220611211555-0d226195f203 @@ -127,8 +127,6 @@ require ( github.com/matttproud/golang_protobuf_extensions v1.0.4 // indirect github.com/mgutz/ansi v0.0.0-20170206155736-9520e82c474b // indirect github.com/miekg/pkcs11 v1.1.1 // indirect - github.com/mitchellh/copystructure v1.2.0 // indirect - github.com/mitchellh/reflectwalk v1.0.2 // indirect github.com/moby/docker-image-spec v1.3.1 // indirect github.com/moby/locker v1.0.1 // indirect github.com/moby/spdystream v0.2.0 // indirect diff --git a/go.sum b/go.sum index a37b678a05..6556d9e12d 100644 --- a/go.sum +++ b/go.sum @@ -86,8 +86,8 @@ github.com/cncf/xds/go v0.0.0-20230607035331-e9ce68804cb4 h1:/inchEIKaYC1Akx+H+g github.com/cncf/xds/go v0.0.0-20230607035331-e9ce68804cb4/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= github.com/codahale/rfc6979 v0.0.0-20141003034818-6a90f24967eb h1:EDmT6Q9Zs+SbUoc7Ik9EfrFqcylYqgPZ9ANSbTAntnE= github.com/codahale/rfc6979 v0.0.0-20141003034818-6a90f24967eb/go.mod h1:ZjrT6AXHbDs86ZSdt/osfBi5qfexBrKUdONk989Wnk4= -github.com/compose-spec/compose-go/v2 v2.1.2 h1:N2XmNYg5jHNBaU+4/zSAe2UrZLq7Kkp1eSsOHfAHbxQ= -github.com/compose-spec/compose-go/v2 v2.1.2/go.mod h1:NJGRGazJfh0tD7d13h66KDVvyOHK49Wil2CIhoffiD0= +github.com/compose-spec/compose-go/v2 v2.1.3 h1:bD67uqLuL/XgkAK6ir3xZvNLFPxPScEi1KW7R5esrLE= +github.com/compose-spec/compose-go/v2 v2.1.3/go.mod h1:lFN0DrMxIncJGYAXTfWuajfwj5haBJqrBkarHcnjJKc= github.com/containerd/cgroups v1.1.0 h1:v8rEWFl6EoqHB+swVNjVoCJE8o3jX7e8nqBGPLaDFBM= github.com/containerd/cgroups v1.1.0/go.mod h1:6ppBcbh/NOOUU+dMKrykgaBnK9lCIBxHqJDGwsa1mIw= github.com/containerd/console v1.0.4 h1:F2g4+oChYvBTsASRTz8NP6iIAi97J3TtSAsLbIFn4ro= @@ -126,15 +126,15 @@ github.com/distribution/reference v0.6.0 h1:0IXCQ5g4/QMHHkarYzh5l+u8T3t73zM5Qvfr github.com/distribution/reference v0.6.0/go.mod h1:BbU0aIcezP1/5jX/8MP0YiH4SdvB5Y4f/wlDRiLyi3E= github.com/docker/buildx v0.15.0 h1:PVq4IMnTvw1Sx0RKDWbfi2eTGawFd9CMBYnz9xat93Y= github.com/docker/buildx v0.15.0/go.mod h1:AdkB1RIcU4rfZ6mpw2PA2pOi1ppI9yvFXkVEpq5EmS4= -github.com/docker/cli v26.1.4+incompatible h1:I8PHdc0MtxEADqYJZvhBrW9bo8gawKwwenxRM7/rLu8= -github.com/docker/cli v26.1.4+incompatible/go.mod h1:JLrzqnKDaYBop7H2jaqPtU4hHvMKP+vjCwu2uszcLI8= +github.com/docker/cli v27.0.0-rc.2.0.20240618151400-64206aef767d+incompatible h1:umz2quO0KNl/+obRdj79FTyiJ1By1VHsannN1pEiYfY= +github.com/docker/cli v27.0.0-rc.2.0.20240618151400-64206aef767d+incompatible/go.mod h1:JLrzqnKDaYBop7H2jaqPtU4hHvMKP+vjCwu2uszcLI8= github.com/docker/cli-docs-tool v0.7.0 h1:M2Da98Unz2kz3A5d4yeSGbhyOge2mfYSNjAFt01Rw0M= github.com/docker/cli-docs-tool v0.7.0/go.mod h1:zMjqTFCU361PRh8apiXzeAZ1Q/xupbIwTusYpzCXS/o= 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/go.mod h1:J2gT2udsDAN96Uj4KfcMRqY0/ypR+oyYUYmja8H+y+w= -github.com/docker/docker v26.1.4+incompatible h1:vuTpXDuoga+Z38m1OZHzl7NKisKWaWlhjQk7IDPSLsU= -github.com/docker/docker v26.1.4+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= +github.com/docker/docker v27.0.0-rc.2.0.20240620082716-a24af26aba4a+incompatible h1:4Ukxc9MPR9SBAzhljGtuaf9O6g4P+WhWxplJqMvLfnM= +github.com/docker/docker v27.0.0-rc.2.0.20240620082716-a24af26aba4a+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= github.com/docker/docker-credential-helpers v0.8.0 h1:YQFtbBQb4VrpoPxhFuzEBPQ9E16qz5SpHLS+uswaCp8= github.com/docker/docker-credential-helpers v0.8.0/go.mod h1:UGFXcuoQ5TxPiB54nHOZ32AWRqQdECoh/Mg0AlEYb40= github.com/docker/go v1.5.1-1.0.20160303222718-d30aec9fd63c h1:lzqkGL9b3znc+ZUgi7FlLnqjQhcXxkNM/quxIjBVMD0= @@ -311,15 +311,11 @@ github.com/mgutz/ansi v0.0.0-20170206155736-9520e82c474b/go.mod h1:01TrycV0kFyex github.com/miekg/pkcs11 v1.0.2/go.mod h1:XsNlhZGX73bx86s2hdc/FuaLm2CPZJemRLMA+WTFxgs= github.com/miekg/pkcs11 v1.1.1 h1:Ugu9pdy6vAYku5DEpVWVFPYnzV+bxB+iRdbuFSu7TvU= github.com/miekg/pkcs11 v1.1.1/go.mod h1:XsNlhZGX73bx86s2hdc/FuaLm2CPZJemRLMA+WTFxgs= -github.com/mitchellh/copystructure v1.2.0 h1:vpKXTN4ewci03Vljg/q9QvCGUDttBOGBIa15WveJJGw= -github.com/mitchellh/copystructure v1.2.0/go.mod h1:qLl+cE2AmVv+CoeAwDPye/v+N2HKCj9FbZEVFJRxO9s= github.com/mitchellh/go-ps v1.0.0 h1:i6ampVEEF4wQFF+bkYfwYgY+F/uYJDktmvLPf7qIgjc= github.com/mitchellh/go-ps v1.0.0/go.mod h1:J4lOc8z8yJs6vUwklHw2XEIiT4z4C40KtWVN3nvg8Pg= github.com/mitchellh/mapstructure v0.0.0-20150613213606-2caf8efc9366/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= github.com/mitchellh/mapstructure v1.5.0 h1:jeMsZIYE/09sWLaz43PL7Gy6RuMjD2eJVyuac5Z2hdY= github.com/mitchellh/mapstructure v1.5.0/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= -github.com/mitchellh/reflectwalk v1.0.2 h1:G2LzWKi524PWgd3mLHV8Y5k7s6XUvT0Gef6zxSIeXaQ= -github.com/mitchellh/reflectwalk v1.0.2/go.mod h1:mSTlrgnPZtwu0c4WaC2kGObEpuNDbx0jmZXqmk4esnw= github.com/moby/buildkit v0.14.0 h1:mHv2lFS8znLDRc4SMyM2B9tPjxWh2blMvr0H7ARquNM= github.com/moby/buildkit v0.14.0/go.mod h1:1XssG7cAqv5Bz1xcGMxJL123iCv5TYN4Z/qf647gfuk= github.com/moby/docker-image-spec v1.3.1 h1:jMKff3w6PgbfSa69GfNg+zN/XLhfXJGnEx3Nl2EsFP0= diff --git a/pkg/api/dryrunclient.go b/pkg/api/dryrunclient.go index 406121a7eb..0470ead564 100644 --- a/pkg/api/dryrunclient.go +++ b/pkg/api/dryrunclient.go @@ -107,7 +107,8 @@ func (d *DryRunClient) ContainerCreate(ctx context.Context, config *containerTyp Names: []string{containerName}, Labels: config.Labels, HostConfig: struct { - NetworkMode string `json:",omitempty"` + NetworkMode string `json:",omitempty"` + Annotations map[string]string `json:",omitempty"` }{}, }) return containerType.CreateResponse{ID: containerName}, nil @@ -188,15 +189,15 @@ func (d *DryRunClient) ContainerUnpause(ctx context.Context, container string) e return nil } -func (d *DryRunClient) CopyFromContainer(ctx context.Context, container, srcPath string) (io.ReadCloser, moby.ContainerPathStat, error) { +func (d *DryRunClient) CopyFromContainer(ctx context.Context, container, srcPath string) (io.ReadCloser, containerType.PathStat, error) { rc := io.NopCloser(strings.NewReader("")) if _, err := d.ContainerStatPath(ctx, container, srcPath); err != nil { - return rc, moby.ContainerPathStat{}, fmt.Errorf(" %s Could not find the file %s in container %s", DRYRUN_PREFIX, srcPath, container) + return rc, containerType.PathStat{}, fmt.Errorf(" %s Could not find the file %s in container %s", DRYRUN_PREFIX, srcPath, container) } - return rc, moby.ContainerPathStat{}, nil + return rc, containerType.PathStat{}, nil } -func (d *DryRunClient) CopyToContainer(ctx context.Context, container, path string, content io.Reader, options moby.CopyToContainerOptions) error { +func (d *DryRunClient) CopyToContainer(ctx context.Context, container, path string, content io.Reader, options containerType.CopyToContainerOptions) error { if _, err := d.ContainerStatPath(ctx, container, path); err != nil { return fmt.Errorf(" %s Could not find the file %s in container %s", DRYRUN_PREFIX, path, container) } @@ -269,8 +270,8 @@ func (d *DryRunClient) NetworkConnect(ctx context.Context, networkName, containe return nil } -func (d *DryRunClient) NetworkCreate(ctx context.Context, name string, options moby.NetworkCreate) (moby.NetworkCreateResponse, error) { - return moby.NetworkCreateResponse{ +func (d *DryRunClient) NetworkCreate(ctx context.Context, name string, options network.CreateOptions) (network.CreateResponse, error) { + return network.CreateResponse{ ID: name, Warning: "", }, nil @@ -298,7 +299,7 @@ func (d *DryRunClient) VolumeRemove(ctx context.Context, volumeID string, force return nil } -func (d *DryRunClient) ContainerExecCreate(ctx context.Context, container string, config moby.ExecConfig) (moby.IDResponse, error) { +func (d *DryRunClient) ContainerExecCreate(ctx context.Context, container string, config containerType.ExecOptions) (moby.IDResponse, error) { b := make([]byte, 32) _, _ = rand.Read(b) id := fmt.Sprintf("%x", b) @@ -311,7 +312,7 @@ func (d *DryRunClient) ContainerExecCreate(ctx context.Context, container string }, nil } -func (d *DryRunClient) ContainerExecStart(ctx context.Context, execID string, config moby.ExecStartCheck) error { +func (d *DryRunClient) ContainerExecStart(ctx context.Context, execID string, config containerType.ExecStartOptions) error { v, ok := d.execs.LoadAndDelete(execID) if !ok { return fmt.Errorf("invalid exec ID %q", execID) @@ -351,11 +352,11 @@ func (d *DryRunClient) ContainerDiff(ctx context.Context, container string) ([]c return d.apiClient.ContainerDiff(ctx, container) } -func (d *DryRunClient) ContainerExecAttach(ctx context.Context, execID string, config moby.ExecStartCheck) (moby.HijackedResponse, error) { +func (d *DryRunClient) ContainerExecAttach(ctx context.Context, execID string, config containerType.ExecStartOptions) (moby.HijackedResponse, error) { return moby.HijackedResponse{}, errors.New("interactive exec is not supported in dry-run mode") } -func (d *DryRunClient) ContainerExecInspect(ctx context.Context, execID string) (moby.ContainerExecInspect, error) { +func (d *DryRunClient) ContainerExecInspect(ctx context.Context, execID string) (containerType.ExecInspect, error) { return d.apiClient.ContainerExecInspect(ctx, execID) } @@ -379,15 +380,15 @@ func (d *DryRunClient) ContainerResize(ctx context.Context, container string, op return d.apiClient.ContainerResize(ctx, container, options) } -func (d *DryRunClient) ContainerStatPath(ctx context.Context, container, path string) (moby.ContainerPathStat, error) { +func (d *DryRunClient) ContainerStatPath(ctx context.Context, container, path string) (containerType.PathStat, error) { return d.apiClient.ContainerStatPath(ctx, container, path) } -func (d *DryRunClient) ContainerStats(ctx context.Context, container string, stream bool) (moby.ContainerStats, error) { +func (d *DryRunClient) ContainerStats(ctx context.Context, container string, stream bool) (containerType.StatsResponseReader, error) { return d.apiClient.ContainerStats(ctx, container, stream) } -func (d *DryRunClient) ContainerStatsOneShot(ctx context.Context, container string) (moby.ContainerStats, error) { +func (d *DryRunClient) ContainerStatsOneShot(ctx context.Context, container string) (containerType.StatsResponseReader, error) { return d.apiClient.ContainerStatsOneShot(ctx, container) } @@ -403,7 +404,7 @@ func (d *DryRunClient) ContainerWait(ctx context.Context, container string, cond return d.apiClient.ContainerWait(ctx, container, condition) } -func (d *DryRunClient) ContainersPrune(ctx context.Context, pruneFilters filters.Args) (moby.ContainersPruneReport, error) { +func (d *DryRunClient) ContainersPrune(ctx context.Context, pruneFilters filters.Args) (containerType.PruneReport, error) { return d.apiClient.ContainersPrune(ctx, pruneFilters) } @@ -427,7 +428,7 @@ func (d *DryRunClient) ImageHistory(ctx context.Context, imageName string) ([]im return d.apiClient.ImageHistory(ctx, imageName) } -func (d *DryRunClient) ImageImport(ctx context.Context, source moby.ImageImportSource, ref string, options image.ImportOptions) (io.ReadCloser, error) { +func (d *DryRunClient) ImageImport(ctx context.Context, source image.ImportSource, ref string, options image.ImportOptions) (io.ReadCloser, error) { return d.apiClient.ImageImport(ctx, source, ref, options) } @@ -435,11 +436,11 @@ func (d *DryRunClient) ImageList(ctx context.Context, options image.ListOptions) return d.apiClient.ImageList(ctx, options) } -func (d *DryRunClient) ImageLoad(ctx context.Context, input io.Reader, quiet bool) (moby.ImageLoadResponse, error) { +func (d *DryRunClient) ImageLoad(ctx context.Context, input io.Reader, quiet bool) (image.LoadResponse, error) { return d.apiClient.ImageLoad(ctx, input, quiet) } -func (d *DryRunClient) ImageSearch(ctx context.Context, term string, options moby.ImageSearchOptions) ([]registry.SearchResult, error) { +func (d *DryRunClient) ImageSearch(ctx context.Context, term string, options registry.SearchOptions) ([]registry.SearchResult, error) { return d.apiClient.ImageSearch(ctx, term, options) } @@ -451,7 +452,7 @@ func (d *DryRunClient) ImageTag(ctx context.Context, imageName, ref string) erro return d.apiClient.ImageTag(ctx, imageName, ref) } -func (d *DryRunClient) ImagesPrune(ctx context.Context, pruneFilter filters.Args) (moby.ImagesPruneReport, error) { +func (d *DryRunClient) ImagesPrune(ctx context.Context, pruneFilter filters.Args) (image.PruneReport, error) { return d.apiClient.ImagesPrune(ctx, pruneFilter) } @@ -471,19 +472,19 @@ func (d *DryRunClient) NodeUpdate(ctx context.Context, nodeID string, version sw return d.apiClient.NodeUpdate(ctx, nodeID, version, node) } -func (d *DryRunClient) NetworkInspect(ctx context.Context, networkName string, options moby.NetworkInspectOptions) (moby.NetworkResource, error) { +func (d *DryRunClient) NetworkInspect(ctx context.Context, networkName string, options network.InspectOptions) (network.Inspect, error) { return d.apiClient.NetworkInspect(ctx, networkName, options) } -func (d *DryRunClient) NetworkInspectWithRaw(ctx context.Context, networkName string, options moby.NetworkInspectOptions) (moby.NetworkResource, []byte, error) { +func (d *DryRunClient) NetworkInspectWithRaw(ctx context.Context, networkName string, options network.InspectOptions) (network.Inspect, []byte, error) { return d.apiClient.NetworkInspectWithRaw(ctx, networkName, options) } -func (d *DryRunClient) NetworkList(ctx context.Context, options moby.NetworkListOptions) ([]moby.NetworkResource, error) { +func (d *DryRunClient) NetworkList(ctx context.Context, options network.ListOptions) ([]network.Inspect, error) { return d.apiClient.NetworkList(ctx, options) } -func (d *DryRunClient) NetworksPrune(ctx context.Context, pruneFilter filters.Args) (moby.NetworksPruneReport, error) { +func (d *DryRunClient) NetworksPrune(ctx context.Context, pruneFilter filters.Args) (network.PruneReport, error) { return d.apiClient.NetworksPrune(ctx, pruneFilter) } @@ -611,7 +612,7 @@ func (d *DryRunClient) SecretUpdate(ctx context.Context, id string, version swar return d.apiClient.SecretUpdate(ctx, id, version, secret) } -func (d *DryRunClient) Events(ctx context.Context, options moby.EventsOptions) (<-chan events.Message, <-chan error) { +func (d *DryRunClient) Events(ctx context.Context, options events.ListOptions) (<-chan events.Message, <-chan error) { return d.apiClient.Events(ctx, options) } @@ -643,7 +644,7 @@ func (d *DryRunClient) VolumeList(ctx context.Context, opts volume.ListOptions) return d.apiClient.VolumeList(ctx, opts) } -func (d *DryRunClient) VolumesPrune(ctx context.Context, pruneFilter filters.Args) (moby.VolumesPruneReport, error) { +func (d *DryRunClient) VolumesPrune(ctx context.Context, pruneFilter filters.Args) (volume.PruneReport, error) { return d.apiClient.VolumesPrune(ctx, pruneFilter) } diff --git a/pkg/api/io.go b/pkg/api/io.go index 3bb73e0ccb..cb83ac18df 100644 --- a/pkg/api/io.go +++ b/pkg/api/io.go @@ -17,13 +17,11 @@ package api import ( - "io" - "github.com/docker/cli/cli/streams" ) type Streams interface { Out() *streams.Out - Err() io.Writer + Err() *streams.Out In() *streams.In } diff --git a/pkg/compose/compose.go b/pkg/compose/compose.go index 5ed9351204..e8a87561c3 100644 --- a/pkg/compose/compose.go +++ b/pkg/compose/compose.go @@ -28,6 +28,7 @@ import ( "github.com/docker/compose/v2/internal/desktop" "github.com/docker/compose/v2/internal/experimental" + "github.com/docker/docker/api/types/network" "github.com/docker/docker/api/types/volume" "github.com/jonboulle/clockwork" @@ -261,7 +262,7 @@ func (s *composeService) actualVolumes(ctx context.Context, projectName string) } func (s *composeService) actualNetworks(ctx context.Context, projectName string) (types.Networks, error) { - networks, err := s.apiClient().NetworkList(ctx, moby.NetworkListOptions{ + networks, err := s.apiClient().NetworkList(ctx, network.ListOptions{ Filters: filters.NewArgs(projectFilter(projectName)), }) if err != nil { diff --git a/pkg/compose/cp.go b/pkg/compose/cp.go index 85941f8f6c..107af78ddd 100644 --- a/pkg/compose/cp.go +++ b/pkg/compose/cp.go @@ -30,7 +30,7 @@ import ( "github.com/docker/cli/cli/command" "github.com/docker/compose/v2/pkg/api" - moby "github.com/docker/docker/api/types" + "github.com/docker/docker/api/types/container" "github.com/docker/docker/pkg/archive" "github.com/docker/docker/pkg/system" ) @@ -88,9 +88,9 @@ func (s *composeService) copy(ctx context.Context, projectName string, options a w := progress.ContextWriter(ctx) g := errgroup.Group{} for _, cont := range containers { - container := cont + ctr := cont g.Go(func() error { - name := getCanonicalContainerName(container) + name := getCanonicalContainerName(ctr) var msg string if direction == fromService { msg = fmt.Sprintf("copy %s:%s to %s", name, srcPath, dstPath) @@ -103,7 +103,7 @@ func (s *composeService) copy(ctx context.Context, projectName string, options a Status: progress.Working, StatusText: "Copying", }) - if err := copyFunc(ctx, container.ID, srcPath, dstPath, options); err != nil { + if err := copyFunc(ctx, ctr.ID, srcPath, dstPath, options); err != nil { return err } w.Event(progress.Event{ @@ -124,11 +124,11 @@ func (s *composeService) listContainersTargetedForCopy(ctx context.Context, proj var err error switch { case index > 0: - container, err := s.getSpecifiedContainer(ctx, projectName, oneOffExclude, true, serviceName, index) + ctr, err := s.getSpecifiedContainer(ctx, projectName, oneOffExclude, true, serviceName, index) if err != nil { return nil, err } - return append(containers, container), nil + return append(containers, ctr), nil default: containers, err = s.getContainers(ctx, projectName, oneOffExclude, true, serviceName) if err != nil { @@ -237,7 +237,7 @@ func (s *composeService) copyToContainer(ctx context.Context, containerID string } } - options := moby.CopyToContainerOptions{ + options := container.CopyToContainerOptions{ AllowOverwriteDirWithFile: false, CopyUIDGID: opts.CopyUIDGID, } @@ -304,7 +304,7 @@ func (s *composeService) copyFromContainer(ctx context.Context, containerID, src return archive.CopyTo(preArchive, srcInfo, dstPath) } -func splitCpArg(arg string) (container, path string) { +func splitCpArg(arg string) (ctr, path string) { if system.IsAbs(arg) { // Explicit local absolute path, e.g., `C:\foo` or `/foo`. return "", arg diff --git a/pkg/compose/create.go b/pkg/compose/create.go index 73ff473723..254bb4e62c 100644 --- a/pkg/compose/create.go +++ b/pkg/compose/create.go @@ -1187,7 +1187,7 @@ func (s *composeService) resolveOrCreateNetwork(ctx context.Context, n *types.Ne expectedProjectLabel := n.Labels[api.ProjectLabel] // First, try to find a unique network matching by name or ID - inspect, err := s.apiClient().NetworkInspect(ctx, n.Name, moby.NetworkInspectOptions{}) + inspect, err := s.apiClient().NetworkInspect(ctx, n.Name, network.InspectOptions{}) if err == nil { // NetworkInspect will match on ID prefix, so double check we get the expected one // as looking for network named `db` we could erroneously matched network ID `db9086999caf` @@ -1209,7 +1209,7 @@ func (s *composeService) resolveOrCreateNetwork(ctx context.Context, n *types.Ne // ignore other errors. Typically, an ambiguous request by name results in some generic `invalidParameter` error // Either not found, or name is ambiguous - use NetworkList to list by name - networks, err := s.apiClient().NetworkList(ctx, moby.NetworkListOptions{ + networks, err := s.apiClient().NetworkList(ctx, network.ListOptions{ Filters: filters.NewArgs(filters.Arg("name", n.Name)), }) if err != nil { @@ -1217,7 +1217,7 @@ func (s *composeService) resolveOrCreateNetwork(ctx context.Context, n *types.Ne } // NetworkList Matches all or part of a network name, so we have to filter for a strict match - networks = utils.Filter(networks, func(net moby.NetworkResource) bool { + networks = utils.Filter(networks, func(net network.Summary) bool { return net.Name == n.Name }) @@ -1253,15 +1253,14 @@ func (s *composeService) resolveOrCreateNetwork(ctx context.Context, n *types.Ne Config: config, } } - createOpts := moby.NetworkCreate{ - CheckDuplicate: true, - Labels: n.Labels, - Driver: n.Driver, - Options: n.DriverOpts, - Internal: n.Internal, - Attachable: n.Attachable, - IPAM: ipam, - EnableIPv6: n.EnableIPv6, + createOpts := network.CreateOptions{ + Labels: n.Labels, + Driver: n.Driver, + Options: n.DriverOpts, + Internal: n.Internal, + Attachable: n.Attachable, + IPAM: ipam, + EnableIPv6: n.EnableIPv6, } if n.Ipam.Driver != "" || len(n.Ipam.Config) > 0 { @@ -1299,7 +1298,7 @@ func (s *composeService) resolveExternalNetwork(ctx context.Context, n *types.Ne // filter is used to look for an exact match to prevent e.g. a network // named `db` from getting erroneously matched to a network with an ID // like `db9086999caf` - networks, err := s.apiClient().NetworkList(ctx, moby.NetworkListOptions{ + networks, err := s.apiClient().NetworkList(ctx, network.ListOptions{ Filters: filters.NewArgs(filters.Arg("name", n.Name)), }) @@ -1309,7 +1308,7 @@ func (s *composeService) resolveExternalNetwork(ctx context.Context, n *types.Ne if len(networks) == 0 { // in this instance, n.Name is really an ID - sn, err := s.apiClient().NetworkInspect(ctx, n.Name, moby.NetworkInspectOptions{}) + sn, err := s.apiClient().NetworkInspect(ctx, n.Name, network.InspectOptions{}) if err != nil { return err } @@ -1318,7 +1317,7 @@ func (s *composeService) resolveExternalNetwork(ctx context.Context, n *types.Ne } // NetworkList API doesn't return the exact name match, so we can retrieve more than one network with a request - networks = utils.Filter(networks, func(net moby.NetworkResource) bool { + networks = utils.Filter(networks, func(net network.Inspect) bool { // later in this function, the name is changed the to ID. // this function is called during the rebuild stage of `compose watch`. // we still require just one network back, but we need to run the search on the ID diff --git a/pkg/compose/down.go b/pkg/compose/down.go index c2fea1cad7..baaff789b9 100644 --- a/pkg/compose/down.go +++ b/pkg/compose/down.go @@ -31,6 +31,7 @@ import ( containerType "github.com/docker/docker/api/types/container" "github.com/docker/docker/api/types/filters" imageapi "github.com/docker/docker/api/types/image" + "github.com/docker/docker/api/types/network" "github.com/docker/docker/errdefs" "golang.org/x/sync/errgroup" ) @@ -193,7 +194,7 @@ func (s *composeService) ensureNetworksDown(ctx context.Context, project *types. } func (s *composeService) removeNetwork(ctx context.Context, composeNetworkName string, projectName string, name string, w progress.Writer) error { - networks, err := s.apiClient().NetworkList(ctx, moby.NetworkListOptions{ + networks, err := s.apiClient().NetworkList(ctx, network.ListOptions{ Filters: filters.NewArgs( projectFilter(projectName), networkFilter(composeNetworkName)), @@ -214,7 +215,7 @@ func (s *composeService) removeNetwork(ctx context.Context, composeNetworkName s if net.Name != name { continue } - network, err := s.apiClient().NetworkInspect(ctx, net.ID, moby.NetworkInspectOptions{}) + nw, err := s.apiClient().NetworkInspect(ctx, net.ID, network.InspectOptions{}) if errdefs.IsNotFound(err) { w.Event(progress.NewEvent(eventName, progress.Warning, "No resource found to remove")) return nil @@ -222,7 +223,7 @@ func (s *composeService) removeNetwork(ctx context.Context, composeNetworkName s if err != nil { return err } - if len(network.Containers) > 0 { + if len(nw.Containers) > 0 { w.Event(progress.NewEvent(eventName, progress.Warning, "Resource is still in use")) found++ continue diff --git a/pkg/compose/down_test.go b/pkg/compose/down_test.go index 6c6aea5d2f..93590f215e 100644 --- a/pkg/compose/down_test.go +++ b/pkg/compose/down_test.go @@ -29,6 +29,7 @@ import ( containerType "github.com/docker/docker/api/types/container" "github.com/docker/docker/api/types/filters" "github.com/docker/docker/api/types/image" + "github.com/docker/docker/api/types/network" "github.com/docker/docker/api/types/volume" "github.com/docker/docker/errdefs" "go.uber.org/mock/gomock" @@ -63,8 +64,8 @@ func TestDown(t *testing.T) { // network names are not guaranteed to be unique, ensure Compose handles // cleanup properly if duplicates are inadvertently created - api.EXPECT().NetworkList(gomock.Any(), moby.NetworkListOptions{Filters: filters.NewArgs(projectFilter(strings.ToLower(testProject)))}). - Return([]moby.NetworkResource{ + api.EXPECT().NetworkList(gomock.Any(), network.ListOptions{Filters: filters.NewArgs(projectFilter(strings.ToLower(testProject)))}). + Return([]network.Summary{ {ID: "abc123", Name: "myProject_default", Labels: map[string]string{compose.NetworkLabel: "default"}}, {ID: "def456", Name: "myProject_default", Labels: map[string]string{compose.NetworkLabel: "default"}}, }, nil) @@ -78,16 +79,16 @@ func TestDown(t *testing.T) { api.EXPECT().ContainerRemove(gomock.Any(), "456", containerType.RemoveOptions{Force: true}).Return(nil) api.EXPECT().ContainerRemove(gomock.Any(), "789", containerType.RemoveOptions{Force: true}).Return(nil) - api.EXPECT().NetworkList(gomock.Any(), moby.NetworkListOptions{ + api.EXPECT().NetworkList(gomock.Any(), network.ListOptions{ Filters: filters.NewArgs( projectFilter(strings.ToLower(testProject)), networkFilter("default")), - }).Return([]moby.NetworkResource{ + }).Return([]network.Summary{ {ID: "abc123", Name: "myProject_default"}, {ID: "def456", Name: "myProject_default"}, }, nil) - api.EXPECT().NetworkInspect(gomock.Any(), "abc123", gomock.Any()).Return(moby.NetworkResource{ID: "abc123"}, nil) - api.EXPECT().NetworkInspect(gomock.Any(), "def456", gomock.Any()).Return(moby.NetworkResource{ID: "def456"}, nil) + api.EXPECT().NetworkInspect(gomock.Any(), "abc123", gomock.Any()).Return(network.Inspect{ID: "abc123"}, nil) + api.EXPECT().NetworkInspect(gomock.Any(), "def456", gomock.Any()).Return(network.Inspect{ID: "def456"}, nil) api.EXPECT().NetworkRemove(gomock.Any(), "abc123").Return(nil) api.EXPECT().NetworkRemove(gomock.Any(), "def456").Return(nil) @@ -116,8 +117,8 @@ func TestDownRemoveOrphans(t *testing.T) { Filters: filters.NewArgs(projectFilter(strings.ToLower(testProject))), }). Return(volume.ListResponse{}, nil) - api.EXPECT().NetworkList(gomock.Any(), moby.NetworkListOptions{Filters: filters.NewArgs(projectFilter(strings.ToLower(testProject)))}). - Return([]moby.NetworkResource{ + api.EXPECT().NetworkList(gomock.Any(), network.ListOptions{Filters: filters.NewArgs(projectFilter(strings.ToLower(testProject)))}). + Return([]network.Summary{ { Name: "myProject_default", Labels: map[string]string{compose.NetworkLabel: "default"}, @@ -132,13 +133,13 @@ func TestDownRemoveOrphans(t *testing.T) { api.EXPECT().ContainerRemove(gomock.Any(), "789", containerType.RemoveOptions{Force: true}).Return(nil) api.EXPECT().ContainerRemove(gomock.Any(), "321", containerType.RemoveOptions{Force: true}).Return(nil) - api.EXPECT().NetworkList(gomock.Any(), moby.NetworkListOptions{ + api.EXPECT().NetworkList(gomock.Any(), network.ListOptions{ Filters: filters.NewArgs( networkFilter("default"), projectFilter(strings.ToLower(testProject)), ), - }).Return([]moby.NetworkResource{{ID: "abc123", Name: "myProject_default"}}, nil) - api.EXPECT().NetworkInspect(gomock.Any(), "abc123", gomock.Any()).Return(moby.NetworkResource{ID: "abc123"}, nil) + }).Return([]network.Summary{{ID: "abc123", Name: "myProject_default"}}, nil) + api.EXPECT().NetworkInspect(gomock.Any(), "abc123", gomock.Any()).Return(network.Inspect{ID: "abc123"}, nil) api.EXPECT().NetworkRemove(gomock.Any(), "abc123").Return(nil) err := tested.Down(context.Background(), strings.ToLower(testProject), compose.DownOptions{RemoveOrphans: true}) @@ -164,7 +165,7 @@ func TestDownRemoveVolumes(t *testing.T) { Return(volume.ListResponse{ Volumes: []*volume.Volume{{Name: "myProject_volume"}}, }, nil) - api.EXPECT().NetworkList(gomock.Any(), moby.NetworkListOptions{Filters: filters.NewArgs(projectFilter(strings.ToLower(testProject)))}). + api.EXPECT().NetworkList(gomock.Any(), network.ListOptions{Filters: filters.NewArgs(projectFilter(strings.ToLower(testProject)))}). Return(nil, nil) api.EXPECT().ContainerStop(gomock.Any(), "123", containerType.StopOptions{}).Return(nil) @@ -301,7 +302,7 @@ func TestDownRemoveImages_NoLabel(t *testing.T) { Return(volume.ListResponse{ Volumes: []*volume.Volume{{Name: "myProject_volume"}}, }, nil) - api.EXPECT().NetworkList(gomock.Any(), moby.NetworkListOptions{Filters: filters.NewArgs(projectFilter(strings.ToLower(testProject)))}). + api.EXPECT().NetworkList(gomock.Any(), network.ListOptions{Filters: filters.NewArgs(projectFilter(strings.ToLower(testProject)))}). Return(nil, nil) // ImageList returns no images for the project since they were unlabeled @@ -329,7 +330,7 @@ func prepareMocks(mockCtrl *gomock.Controller) (*mocks.MockAPIClient, *mocks.Moc api := mocks.NewMockAPIClient(mockCtrl) cli := mocks.NewMockCli(mockCtrl) cli.EXPECT().Client().Return(api).AnyTimes() - cli.EXPECT().Err().Return(os.Stderr).AnyTimes() + cli.EXPECT().Err().Return(streams.NewOut(os.Stderr)).AnyTimes() cli.EXPECT().Out().Return(streams.NewOut(os.Stdout)).AnyTimes() return api, cli } diff --git a/pkg/compose/events.go b/pkg/compose/events.go index 7e78d0292c..3d3f63104a 100644 --- a/pkg/compose/events.go +++ b/pkg/compose/events.go @@ -21,7 +21,7 @@ import ( "strings" "time" - moby "github.com/docker/docker/api/types" + "github.com/docker/docker/api/types/events" "github.com/docker/docker/api/types/filters" "github.com/docker/compose/v2/pkg/api" @@ -30,12 +30,12 @@ import ( func (s *composeService) Events(ctx context.Context, projectName string, options api.EventsOptions) error { projectName = strings.ToLower(projectName) - events, errors := s.apiClient().Events(ctx, moby.EventsOptions{ + evts, errors := s.apiClient().Events(ctx, events.ListOptions{ Filters: filters.NewArgs(projectFilter(projectName)), }) for { select { - case event := <-events: + case event := <-evts: // TODO: support other event types if event.Type != "container" { continue diff --git a/pkg/compose/kill_test.go b/pkg/compose/kill_test.go index 16c16eb615..2d56027066 100644 --- a/pkg/compose/kill_test.go +++ b/pkg/compose/kill_test.go @@ -26,6 +26,7 @@ import ( moby "github.com/docker/docker/api/types" containerType "github.com/docker/docker/api/types/container" "github.com/docker/docker/api/types/filters" + "github.com/docker/docker/api/types/network" "github.com/docker/docker/api/types/volume" "go.uber.org/mock/gomock" "gotest.tools/v3/assert" @@ -57,8 +58,8 @@ func TestKillAll(t *testing.T) { Filters: filters.NewArgs(projectFilter(strings.ToLower(testProject))), }). Return(volume.ListResponse{}, nil) - api.EXPECT().NetworkList(gomock.Any(), moby.NetworkListOptions{Filters: filters.NewArgs(projectFilter(strings.ToLower(testProject)))}). - Return([]moby.NetworkResource{ + api.EXPECT().NetworkList(gomock.Any(), network.ListOptions{Filters: filters.NewArgs(projectFilter(strings.ToLower(testProject)))}). + Return([]network.Summary{ {ID: "abc123", Name: "testProject_default"}, }, nil) api.EXPECT().ContainerKill(anyCancellableContext(), "123", "").Return(nil) @@ -92,8 +93,8 @@ func TestKillSignal(t *testing.T) { Filters: filters.NewArgs(projectFilter(strings.ToLower(testProject))), }). Return(volume.ListResponse{}, nil) - api.EXPECT().NetworkList(gomock.Any(), moby.NetworkListOptions{Filters: filters.NewArgs(projectFilter(strings.ToLower(testProject)))}). - Return([]moby.NetworkResource{ + api.EXPECT().NetworkList(gomock.Any(), network.ListOptions{Filters: filters.NewArgs(projectFilter(strings.ToLower(testProject)))}). + Return([]network.Summary{ {ID: "abc123", Name: "testProject_default"}, }, nil) api.EXPECT().ContainerKill(anyCancellableContext(), "123", "SIGTERM").Return(nil) diff --git a/pkg/compose/secrets.go b/pkg/compose/secrets.go index 5619d92f53..4ba49eed44 100644 --- a/pkg/compose/secrets.go +++ b/pkg/compose/secrets.go @@ -25,7 +25,7 @@ import ( "time" "github.com/compose-spec/compose-go/v2/types" - moby "github.com/docker/docker/api/types" + "github.com/docker/docker/api/types/container" ) func (s *composeService) injectSecrets(ctx context.Context, project *types.Project, service types.ServiceConfig, id string) error { @@ -50,7 +50,7 @@ func (s *composeService) injectSecrets(ctx context.Context, project *types.Proje return err } - err = s.apiClient().CopyToContainer(ctx, id, "/", &b, moby.CopyToContainerOptions{ + err = s.apiClient().CopyToContainer(ctx, id, "/", &b, container.CopyToContainerOptions{ CopyUIDGID: config.UID != "" || config.GID != "", }) if err != nil { @@ -84,7 +84,7 @@ func (s *composeService) injectConfigs(ctx context.Context, project *types.Proje return err } - err = s.apiClient().CopyToContainer(ctx, id, "/", &b, moby.CopyToContainerOptions{ + err = s.apiClient().CopyToContainer(ctx, id, "/", &b, container.CopyToContainerOptions{ CopyUIDGID: config.UID != "" || config.GID != "", }) if err != nil { diff --git a/pkg/compose/stop_test.go b/pkg/compose/stop_test.go index 563a184ca7..8294b4debb 100644 --- a/pkg/compose/stop_test.go +++ b/pkg/compose/stop_test.go @@ -29,6 +29,7 @@ import ( moby "github.com/docker/docker/api/types" "github.com/docker/docker/api/types/filters" + "github.com/docker/docker/api/types/network" "github.com/docker/docker/api/types/volume" "go.uber.org/mock/gomock" "gotest.tools/v3/assert" @@ -56,8 +57,8 @@ func TestStopTimeout(t *testing.T) { Filters: filters.NewArgs(projectFilter(strings.ToLower(testProject))), }). Return(volume.ListResponse{}, nil) - api.EXPECT().NetworkList(gomock.Any(), moby.NetworkListOptions{Filters: filters.NewArgs(projectFilter(strings.ToLower(testProject)))}). - Return([]moby.NetworkResource{}, nil) + api.EXPECT().NetworkList(gomock.Any(), network.ListOptions{Filters: filters.NewArgs(projectFilter(strings.ToLower(testProject)))}). + Return([]network.Summary{}, nil) timeout := 2 * time.Second stopConfig := containerType.StopOptions{Timeout: utils.DurationSecondToInt(&timeout)} diff --git a/pkg/compose/watch.go b/pkg/compose/watch.go index 26ba98faf2..0a3b22f353 100644 --- a/pkg/compose/watch.go +++ b/pkg/compose/watch.go @@ -33,6 +33,7 @@ import ( "github.com/docker/compose/v2/pkg/api" "github.com/docker/compose/v2/pkg/watch" moby "github.com/docker/docker/api/types" + "github.com/docker/docker/api/types/container" "github.com/jonboulle/clockwork" "github.com/mitchellh/mapstructure" "github.com/sirupsen/logrus" @@ -399,7 +400,7 @@ func (t tarDockerClient) ContainersForService(ctx context.Context, projectName s } func (t tarDockerClient) Exec(ctx context.Context, containerID string, cmd []string, in io.Reader) error { - execCfg := moby.ExecConfig{ + execCfg := container.ExecOptions{ Cmd: cmd, AttachStdout: false, AttachStderr: true, @@ -411,7 +412,7 @@ func (t tarDockerClient) Exec(ctx context.Context, containerID string, cmd []str return err } - startCheck := moby.ExecStartCheck{Tty: false, Detach: false} + startCheck := container.ExecStartOptions{Tty: false, Detach: false} conn, err := t.s.apiClient().ContainerExecAttach(ctx, execCreateResp.ID, startCheck) if err != nil { return err @@ -459,7 +460,7 @@ func (t tarDockerClient) Exec(ctx context.Context, containerID string, cmd []str } func (t tarDockerClient) Untar(ctx context.Context, id string, archive io.ReadCloser) error { - return t.s.apiClient().CopyToContainer(ctx, id, "/", archive, moby.CopyToContainerOptions{ + return t.s.apiClient().CopyToContainer(ctx, id, "/", archive, container.CopyToContainerOptions{ CopyUIDGID: true, }) } diff --git a/pkg/compose/watch_test.go b/pkg/compose/watch_test.go index 28d5c85ffd..950e1623bf 100644 --- a/pkg/compose/watch_test.go +++ b/pkg/compose/watch_test.go @@ -22,6 +22,7 @@ import ( "time" "github.com/compose-spec/compose-go/v2/types" + "github.com/docker/cli/cli/streams" "github.com/docker/compose/v2/internal/sync" "github.com/docker/compose/v2/pkg/api" "github.com/docker/compose/v2/pkg/mocks" @@ -113,7 +114,7 @@ func (s stdLogger) Register(container string) { func TestWatch_Sync(t *testing.T) { mockCtrl := gomock.NewController(t) cli := mocks.NewMockCli(mockCtrl) - cli.EXPECT().Err().Return(os.Stderr).AnyTimes() + cli.EXPECT().Err().Return(streams.NewOut(os.Stderr)).AnyTimes() cli.EXPECT().BuildKitEnabled().Return(true, nil) apiClient := mocks.NewMockAPIClient(mockCtrl) apiClient.EXPECT().ContainerList(gomock.Any(), gomock.Any()).Return([]moby.Container{ diff --git a/pkg/mocks/mock_docker_api.go b/pkg/mocks/mock_docker_api.go index d8c2559017..7365d6513f 100644 --- a/pkg/mocks/mock_docker_api.go +++ b/pkg/mocks/mock_docker_api.go @@ -289,7 +289,7 @@ func (mr *MockAPIClientMockRecorder) ContainerDiff(arg0, arg1 any) *gomock.Call } // ContainerExecAttach mocks base method. -func (m *MockAPIClient) ContainerExecAttach(arg0 context.Context, arg1 string, arg2 types.ExecStartCheck) (types.HijackedResponse, error) { +func (m *MockAPIClient) ContainerExecAttach(arg0 context.Context, arg1 string, arg2 container.ExecStartOptions) (types.HijackedResponse, error) { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "ContainerExecAttach", arg0, arg1, arg2) ret0, _ := ret[0].(types.HijackedResponse) @@ -304,7 +304,7 @@ func (mr *MockAPIClientMockRecorder) ContainerExecAttach(arg0, arg1, arg2 any) * } // ContainerExecCreate mocks base method. -func (m *MockAPIClient) ContainerExecCreate(arg0 context.Context, arg1 string, arg2 types.ExecConfig) (types.IDResponse, error) { +func (m *MockAPIClient) ContainerExecCreate(arg0 context.Context, arg1 string, arg2 container.ExecOptions) (types.IDResponse, error) { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "ContainerExecCreate", arg0, arg1, arg2) ret0, _ := ret[0].(types.IDResponse) @@ -319,10 +319,10 @@ func (mr *MockAPIClientMockRecorder) ContainerExecCreate(arg0, arg1, arg2 any) * } // ContainerExecInspect mocks base method. -func (m *MockAPIClient) ContainerExecInspect(arg0 context.Context, arg1 string) (types.ContainerExecInspect, error) { +func (m *MockAPIClient) ContainerExecInspect(arg0 context.Context, arg1 string) (container.ExecInspect, error) { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "ContainerExecInspect", arg0, arg1) - ret0, _ := ret[0].(types.ContainerExecInspect) + ret0, _ := ret[0].(container.ExecInspect) ret1, _ := ret[1].(error) return ret0, ret1 } @@ -348,7 +348,7 @@ func (mr *MockAPIClientMockRecorder) ContainerExecResize(arg0, arg1, arg2 any) * } // ContainerExecStart mocks base method. -func (m *MockAPIClient) ContainerExecStart(arg0 context.Context, arg1 string, arg2 types.ExecStartCheck) error { +func (m *MockAPIClient) ContainerExecStart(arg0 context.Context, arg1 string, arg2 container.ExecStartOptions) error { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "ContainerExecStart", arg0, arg1, arg2) ret0, _ := ret[0].(error) @@ -536,10 +536,10 @@ func (mr *MockAPIClientMockRecorder) ContainerStart(arg0, arg1, arg2 any) *gomoc } // ContainerStatPath mocks base method. -func (m *MockAPIClient) ContainerStatPath(arg0 context.Context, arg1, arg2 string) (types.ContainerPathStat, error) { +func (m *MockAPIClient) ContainerStatPath(arg0 context.Context, arg1, arg2 string) (container.PathStat, error) { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "ContainerStatPath", arg0, arg1, arg2) - ret0, _ := ret[0].(types.ContainerPathStat) + ret0, _ := ret[0].(container.PathStat) ret1, _ := ret[1].(error) return ret0, ret1 } @@ -551,10 +551,10 @@ func (mr *MockAPIClientMockRecorder) ContainerStatPath(arg0, arg1, arg2 any) *go } // ContainerStats mocks base method. -func (m *MockAPIClient) ContainerStats(arg0 context.Context, arg1 string, arg2 bool) (types.ContainerStats, error) { +func (m *MockAPIClient) ContainerStats(arg0 context.Context, arg1 string, arg2 bool) (container.StatsResponseReader, error) { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "ContainerStats", arg0, arg1, arg2) - ret0, _ := ret[0].(types.ContainerStats) + ret0, _ := ret[0].(container.StatsResponseReader) ret1, _ := ret[1].(error) return ret0, ret1 } @@ -566,10 +566,10 @@ func (mr *MockAPIClientMockRecorder) ContainerStats(arg0, arg1, arg2 any) *gomoc } // ContainerStatsOneShot mocks base method. -func (m *MockAPIClient) ContainerStatsOneShot(arg0 context.Context, arg1 string) (types.ContainerStats, error) { +func (m *MockAPIClient) ContainerStatsOneShot(arg0 context.Context, arg1 string) (container.StatsResponseReader, error) { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "ContainerStatsOneShot", arg0, arg1) - ret0, _ := ret[0].(types.ContainerStats) + ret0, _ := ret[0].(container.StatsResponseReader) ret1, _ := ret[1].(error) return ret0, ret1 } @@ -654,10 +654,10 @@ func (mr *MockAPIClientMockRecorder) ContainerWait(arg0, arg1, arg2 any) *gomock } // ContainersPrune mocks base method. -func (m *MockAPIClient) ContainersPrune(arg0 context.Context, arg1 filters.Args) (types.ContainersPruneReport, error) { +func (m *MockAPIClient) ContainersPrune(arg0 context.Context, arg1 filters.Args) (container.PruneReport, error) { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "ContainersPrune", arg0, arg1) - ret0, _ := ret[0].(types.ContainersPruneReport) + ret0, _ := ret[0].(container.PruneReport) ret1, _ := ret[1].(error) return ret0, ret1 } @@ -669,11 +669,11 @@ func (mr *MockAPIClientMockRecorder) ContainersPrune(arg0, arg1 any) *gomock.Cal } // CopyFromContainer mocks base method. -func (m *MockAPIClient) CopyFromContainer(arg0 context.Context, arg1, arg2 string) (io.ReadCloser, types.ContainerPathStat, error) { +func (m *MockAPIClient) CopyFromContainer(arg0 context.Context, arg1, arg2 string) (io.ReadCloser, container.PathStat, error) { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "CopyFromContainer", arg0, arg1, arg2) ret0, _ := ret[0].(io.ReadCloser) - ret1, _ := ret[1].(types.ContainerPathStat) + ret1, _ := ret[1].(container.PathStat) ret2, _ := ret[2].(error) return ret0, ret1, ret2 } @@ -685,7 +685,7 @@ func (mr *MockAPIClientMockRecorder) CopyFromContainer(arg0, arg1, arg2 any) *go } // CopyToContainer mocks base method. -func (m *MockAPIClient) CopyToContainer(arg0 context.Context, arg1, arg2 string, arg3 io.Reader, arg4 types.CopyToContainerOptions) error { +func (m *MockAPIClient) CopyToContainer(arg0 context.Context, arg1, arg2 string, arg3 io.Reader, arg4 container.CopyToContainerOptions) error { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "CopyToContainer", arg0, arg1, arg2, arg3, arg4) ret0, _ := ret[0].(error) @@ -772,7 +772,7 @@ func (mr *MockAPIClientMockRecorder) DistributionInspect(arg0, arg1, arg2 any) * } // Events mocks base method. -func (m *MockAPIClient) Events(arg0 context.Context, arg1 types.EventsOptions) (<-chan events.Message, <-chan error) { +func (m *MockAPIClient) Events(arg0 context.Context, arg1 events.ListOptions) (<-chan events.Message, <-chan error) { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "Events", arg0, arg1) ret0, _ := ret[0].(<-chan events.Message) @@ -846,7 +846,7 @@ func (mr *MockAPIClientMockRecorder) ImageHistory(arg0, arg1 any) *gomock.Call { } // ImageImport mocks base method. -func (m *MockAPIClient) ImageImport(arg0 context.Context, arg1 types.ImageImportSource, arg2 string, arg3 image.ImportOptions) (io.ReadCloser, error) { +func (m *MockAPIClient) ImageImport(arg0 context.Context, arg1 image.ImportSource, arg2 string, arg3 image.ImportOptions) (io.ReadCloser, error) { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "ImageImport", arg0, arg1, arg2, arg3) ret0, _ := ret[0].(io.ReadCloser) @@ -892,10 +892,10 @@ func (mr *MockAPIClientMockRecorder) ImageList(arg0, arg1 any) *gomock.Call { } // ImageLoad mocks base method. -func (m *MockAPIClient) ImageLoad(arg0 context.Context, arg1 io.Reader, arg2 bool) (types.ImageLoadResponse, error) { +func (m *MockAPIClient) ImageLoad(arg0 context.Context, arg1 io.Reader, arg2 bool) (image.LoadResponse, error) { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "ImageLoad", arg0, arg1, arg2) - ret0, _ := ret[0].(types.ImageLoadResponse) + ret0, _ := ret[0].(image.LoadResponse) ret1, _ := ret[1].(error) return ret0, ret1 } @@ -967,7 +967,7 @@ func (mr *MockAPIClientMockRecorder) ImageSave(arg0, arg1 any) *gomock.Call { } // ImageSearch mocks base method. -func (m *MockAPIClient) ImageSearch(arg0 context.Context, arg1 string, arg2 types.ImageSearchOptions) ([]registry.SearchResult, error) { +func (m *MockAPIClient) ImageSearch(arg0 context.Context, arg1 string, arg2 registry.SearchOptions) ([]registry.SearchResult, error) { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "ImageSearch", arg0, arg1, arg2) ret0, _ := ret[0].([]registry.SearchResult) @@ -996,10 +996,10 @@ func (mr *MockAPIClientMockRecorder) ImageTag(arg0, arg1, arg2 any) *gomock.Call } // ImagesPrune mocks base method. -func (m *MockAPIClient) ImagesPrune(arg0 context.Context, arg1 filters.Args) (types.ImagesPruneReport, error) { +func (m *MockAPIClient) ImagesPrune(arg0 context.Context, arg1 filters.Args) (image.PruneReport, error) { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "ImagesPrune", arg0, arg1) - ret0, _ := ret[0].(types.ImagesPruneReport) + ret0, _ := ret[0].(image.PruneReport) ret1, _ := ret[1].(error) return ret0, ret1 } @@ -1064,10 +1064,10 @@ func (mr *MockAPIClientMockRecorder) NetworkConnect(arg0, arg1, arg2, arg3 any) } // NetworkCreate mocks base method. -func (m *MockAPIClient) NetworkCreate(arg0 context.Context, arg1 string, arg2 types.NetworkCreate) (types.NetworkCreateResponse, error) { +func (m *MockAPIClient) NetworkCreate(arg0 context.Context, arg1 string, arg2 network.CreateOptions) (network.CreateResponse, error) { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "NetworkCreate", arg0, arg1, arg2) - ret0, _ := ret[0].(types.NetworkCreateResponse) + ret0, _ := ret[0].(network.CreateResponse) ret1, _ := ret[1].(error) return ret0, ret1 } @@ -1093,10 +1093,10 @@ func (mr *MockAPIClientMockRecorder) NetworkDisconnect(arg0, arg1, arg2, arg3 an } // NetworkInspect mocks base method. -func (m *MockAPIClient) NetworkInspect(arg0 context.Context, arg1 string, arg2 types.NetworkInspectOptions) (types.NetworkResource, error) { +func (m *MockAPIClient) NetworkInspect(arg0 context.Context, arg1 string, arg2 network.InspectOptions) (network.Inspect, error) { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "NetworkInspect", arg0, arg1, arg2) - ret0, _ := ret[0].(types.NetworkResource) + ret0, _ := ret[0].(network.Inspect) ret1, _ := ret[1].(error) return ret0, ret1 } @@ -1108,10 +1108,10 @@ func (mr *MockAPIClientMockRecorder) NetworkInspect(arg0, arg1, arg2 any) *gomoc } // NetworkInspectWithRaw mocks base method. -func (m *MockAPIClient) NetworkInspectWithRaw(arg0 context.Context, arg1 string, arg2 types.NetworkInspectOptions) (types.NetworkResource, []byte, error) { +func (m *MockAPIClient) NetworkInspectWithRaw(arg0 context.Context, arg1 string, arg2 network.InspectOptions) (network.Inspect, []byte, error) { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "NetworkInspectWithRaw", arg0, arg1, arg2) - ret0, _ := ret[0].(types.NetworkResource) + ret0, _ := ret[0].(network.Inspect) ret1, _ := ret[1].([]byte) ret2, _ := ret[2].(error) return ret0, ret1, ret2 @@ -1124,10 +1124,10 @@ func (mr *MockAPIClientMockRecorder) NetworkInspectWithRaw(arg0, arg1, arg2 any) } // NetworkList mocks base method. -func (m *MockAPIClient) NetworkList(arg0 context.Context, arg1 types.NetworkListOptions) ([]types.NetworkResource, error) { +func (m *MockAPIClient) NetworkList(arg0 context.Context, arg1 network.ListOptions) ([]network.Inspect, error) { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "NetworkList", arg0, arg1) - ret0, _ := ret[0].([]types.NetworkResource) + ret0, _ := ret[0].([]network.Inspect) ret1, _ := ret[1].(error) return ret0, ret1 } @@ -1153,10 +1153,10 @@ func (mr *MockAPIClientMockRecorder) NetworkRemove(arg0, arg1 any) *gomock.Call } // NetworksPrune mocks base method. -func (m *MockAPIClient) NetworksPrune(arg0 context.Context, arg1 filters.Args) (types.NetworksPruneReport, error) { +func (m *MockAPIClient) NetworksPrune(arg0 context.Context, arg1 filters.Args) (network.PruneReport, error) { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "NetworksPrune", arg0, arg1) - ret0, _ := ret[0].(types.NetworksPruneReport) + ret0, _ := ret[0].(network.PruneReport) ret1, _ := ret[1].(error) return ret0, ret1 } @@ -1818,10 +1818,10 @@ func (mr *MockAPIClientMockRecorder) VolumeUpdate(arg0, arg1, arg2, arg3 any) *g } // VolumesPrune mocks base method. -func (m *MockAPIClient) VolumesPrune(arg0 context.Context, arg1 filters.Args) (types.VolumesPruneReport, error) { +func (m *MockAPIClient) VolumesPrune(arg0 context.Context, arg1 filters.Args) (volume.PruneReport, error) { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "VolumesPrune", arg0, arg1) - ret0, _ := ret[0].(types.VolumesPruneReport) + ret0, _ := ret[0].(volume.PruneReport) ret1, _ := ret[1].(error) return ret0, ret1 } diff --git a/pkg/mocks/mock_docker_cli.go b/pkg/mocks/mock_docker_cli.go index 61c640f969..f08d62d4a2 100644 --- a/pkg/mocks/mock_docker_cli.go +++ b/pkg/mocks/mock_docker_cli.go @@ -10,7 +10,6 @@ package mocks import ( - io "io" reflect "reflect" command "github.com/docker/cli/cli/command" @@ -198,10 +197,10 @@ func (mr *MockCliMockRecorder) DockerEndpoint() *gomock.Call { } // Err mocks base method. -func (m *MockCli) Err() io.Writer { +func (m *MockCli) Err() *streams.Out { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "Err") - ret0, _ := ret[0].(io.Writer) + ret0, _ := ret[0].(*streams.Out) return ret0 }