diff --git a/go.mod b/go.mod index 9394a50f9..392118bda 100644 --- a/go.mod +++ b/go.mod @@ -13,9 +13,9 @@ require ( github.com/davecgh/go-spew v1.1.1 github.com/distribution/reference v0.6.0 github.com/docker/buildx v0.15.1 - github.com/docker/cli v26.1.4+incompatible + github.com/docker/cli v27.0.1-rc.1+incompatible github.com/docker/cli-docs-tool v0.7.0 - github.com/docker/docker v26.1.4+incompatible + github.com/docker/docker v27.0.1-rc.1+incompatible 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 @@ -85,7 +85,7 @@ require ( github.com/containerd/errdefs v0.1.0 // indirect github.com/containerd/log v0.1.0 // indirect github.com/containerd/platforms v0.2.1 // indirect - github.com/containerd/ttrpc v1.2.4 // indirect + github.com/containerd/ttrpc v1.2.5 // indirect github.com/containerd/typeurl/v2 v2.1.1 // indirect github.com/docker/distribution v2.8.3+incompatible // indirect github.com/docker/docker-credential-helpers v0.8.0 // indirect @@ -166,13 +166,13 @@ require ( go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.21.0 // indirect go.opentelemetry.io/otel/sdk/metric v1.21.0 // indirect go.opentelemetry.io/proto/otlp v1.0.0 // indirect - golang.org/x/crypto v0.21.0 // indirect - golang.org/x/net v0.23.0 // indirect + golang.org/x/crypto v0.22.0 // indirect + golang.org/x/net v0.24.0 // indirect golang.org/x/oauth2 v0.11.0 // indirect - golang.org/x/term v0.18.0 // indirect + golang.org/x/term v0.19.0 // indirect golang.org/x/text v0.14.0 // indirect golang.org/x/time v0.3.0 // indirect - google.golang.org/appengine v1.6.7 // indirect + google.golang.org/appengine v1.6.8 // indirect google.golang.org/genproto v0.0.0-20231016165738-49dd2c1f3d0b // indirect google.golang.org/genproto/googleapis/api v0.0.0-20231016165738-49dd2c1f3d0b // indirect google.golang.org/genproto/googleapis/rpc v0.0.0-20231016165738-49dd2c1f3d0b // indirect diff --git a/go.sum b/go.sum index ece71fe62..1233d1743 100644 --- a/go.sum +++ b/go.sum @@ -109,8 +109,8 @@ github.com/containerd/platforms v0.2.1/go.mod h1:XHCb+2/hzowdiut9rkudds9bE5yJ7np github.com/containerd/stargz-snapshotter v0.15.1 h1:fpsP4kf/Z4n2EYnU0WT8ZCE3eiKDwikDhL6VwxIlgeA= github.com/containerd/stargz-snapshotter/estargz v0.15.1 h1:eXJjw9RbkLFgioVaTG+G/ZW/0kEe2oEKCdS/ZxIyoCU= github.com/containerd/stargz-snapshotter/estargz v0.15.1/go.mod h1:gr2RNwukQ/S9Nv33Lt6UC7xEx58C+LHRdoqbEKjz1Kk= -github.com/containerd/ttrpc v1.2.4 h1:eQCQK4h9dxDmpOb9QOOMh2NHTfzroH1IkmHiKZi05Oo= -github.com/containerd/ttrpc v1.2.4/go.mod h1:ojvb8SJBSch0XkqNO0L0YX/5NxR3UnVk2LzFKBK0upc= +github.com/containerd/ttrpc v1.2.5 h1:IFckT1EFQoFBMG4c3sMdT8EP3/aKfumK1msY+Ze4oLU= +github.com/containerd/ttrpc v1.2.5/go.mod h1:YCXHsb32f+Sq5/72xHubdiJRQY9inL4a4ZQrAbN1q9o= github.com/containerd/typeurl/v2 v2.1.1 h1:3Q4Pt7i8nYwy2KmQWIw2+1hTvwTE/6w9FqcttATPO/4= github.com/containerd/typeurl/v2 v2.1.1/go.mod h1:IDp2JFvbwZ31H8dQbEIY7sDl2L3o3HZj1hsSQlywkQ0= github.com/cpuguy83/go-md2man/v2 v2.0.4/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= @@ -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.1 h1:1cO6JIc0rOoC8tlxfXoh1HH1uxaNvYH1q7J7kv5enhw= github.com/docker/buildx v0.15.1/go.mod h1:16DQgJqoggmadc1UhLaUTPqKtR+PlByN/kyXFdkhFCo= -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.1-rc.1+incompatible h1:AFjhHlbAij9o6U0UCbYQO8ItuE2imrSsKnIgZaPFnN4= +github.com/docker/cli v27.0.1-rc.1+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.1-rc.1+incompatible h1:aTO14+AepOQZoOHKTfEuQRSAa0VKlihXCEyZt4nLMag= +github.com/docker/docker v27.0.1-rc.1+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= @@ -205,6 +205,7 @@ github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5y github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.4/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw= github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= +github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= github.com/golang/protobuf v1.5.4 h1:i7eJL8qZTpSEXOPTxNKhASYpMn+8e5Q6AdndVa1dWek= github.com/golang/protobuf v1.5.4/go.mod h1:lnTiLA8Wa4RWRcIUkrtSVa5nRhsEGBg48fD6rSs7xps= github.com/google/certificate-transparency-go v1.0.10-0.20180222191210-5ab67e519c93 h1:jc2UWq7CbdszqeH6qu1ougXMIUBfSy8Pbh/anURYbGI= @@ -528,8 +529,8 @@ golang.org/x/crypto v0.0.0-20200302210943-78000ba7a073/go.mod h1:LzIPMQfyMNhhGPh golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20201117144127-c1f2f97bffc9/go.mod h1:jdWPYTVW3xRLrWPugEBEK3UY2ZEsg3UU495nc5E+M+I= golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= -golang.org/x/crypto v0.21.0 h1:X31++rzVUdKhX5sWmSOFZxx8UW/ldWx55cbf08iNAMA= -golang.org/x/crypto v0.21.0/go.mod h1:0BP7YvVV9gBbVKyeTG0Gyn+gZm94bibOW5BjDEYAOMs= +golang.org/x/crypto v0.22.0 h1:g1v0xeRhjcugydODzvb3mEM9SQ0HGp9s/nh3COQ/C30= +golang.org/x/crypto v0.22.0/go.mod h1:vr6Su+7cTlO45qkww3VDJlzDn0ctJvRgYbC2NvXHt+M= golang.org/x/exp v0.0.0-20240112132812-db7319d0e0e3 h1:hNQpMuAJe5CtcUqCXaWga3FHu+kQvCqcsoVaQgSV60o= golang.org/x/exp v0.0.0-20240112132812-db7319d0e0e3/go.mod h1:idGWGoKP1toJGkd5/ig9ZLuPcZBC3ewk7SzmH0uou08= golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= @@ -540,7 +541,6 @@ golang.org/x/mod v0.17.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/net v0.0.0-20190603091049-60506f45cf65/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks= golang.org/x/net v0.0.0-20190613194153-d28f0bde5980/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20191116160921-f9c825593386/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= @@ -548,8 +548,8 @@ golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLL golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= -golang.org/x/net v0.23.0 h1:7EYJ93RZ9vYSZAIb2x3lnuvqO5zneoD6IvWjuhfxjTs= -golang.org/x/net v0.23.0/go.mod h1:JKghWKKOSdJwpW2GEx0Ja7fmaKnMsbu+MWVZTokSYmg= +golang.org/x/net v0.24.0 h1:1PcaxkF854Fu3+lvBIx5SYn9wRlBzzcnHZSiaFFAb0w= +golang.org/x/net v0.24.0/go.mod h1:2Q7sJY5mzlzWjKtYUEXSlBWCdyaioyXzRB2RtU8KVE8= golang.org/x/oauth2 v0.11.0 h1:vPL4xzxBM4niKCW6g9whtaWVXTJf1U5e4aZxxFx/gbU= golang.org/x/oauth2 v0.11.0/go.mod h1:LdF7O/8bLR/qWK9DrpXmbHLTouvRHK0SgJl0GmDBchk= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -587,12 +587,12 @@ golang.org/x/sys v0.21.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201117132131-f5c789dd3221/go.mod h1:Nr5EML6q2oocZ2LXRh80K7BxOlk5/8JxuGnuhpl+muw= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= -golang.org/x/term v0.18.0 h1:FcHjZXDMxI8mM3nwhX9HlKop4C0YQvCVCdwYl2wOtE8= -golang.org/x/term v0.18.0/go.mod h1:ILwASektA3OnRv7amZ1xhE/KTR+u50pbXfZ03+6Nx58= +golang.org/x/term v0.19.0 h1:+ThwsDv+tYfnJFhF4L8jITxu1tdTWRTZpdsWgEgjL6Q= +golang.org/x/term v0.19.0/go.mod h1:2CuTdWZ7KHSQwUzKva0cbMg6q2DMI3Mmxp+gKJbskEk= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= -golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= +golang.org/x/text v0.3.8/go.mod h1:E6s5w1FMmriuDzIBO73fBruAKo1PCIq6d2Q6DHfQ8WQ= golang.org/x/text v0.4.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/text v0.14.0 h1:ScX5w1eTa3QqT8oi6+ziP7dTV1S2+ALU0bI+0zXKWiQ= golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= @@ -609,8 +609,8 @@ golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8T golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -google.golang.org/appengine v1.6.7 h1:FZR1q0exgwxzPzp/aF+VccGrSfxfPpkBqjIIEq3ru6c= -google.golang.org/appengine v1.6.7/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= +google.golang.org/appengine v1.6.8 h1:IhEN5q69dyKagZPYMSdIjS2HqprW324FRQZJcGqPAsM= +google.golang.org/appengine v1.6.8/go.mod h1:1jJ3jBArFh5pcgW8gCtRJnepW8FzD1V44FJffLiz/Ds= google.golang.org/genproto v0.0.0-20231016165738-49dd2c1f3d0b h1:+YaDE2r2OG8t/z5qmsh7Y+XXwCbvadxxZ0YY6mTdrVA= google.golang.org/genproto v0.0.0-20231016165738-49dd2c1f3d0b/go.mod h1:CgAqfJo+Xmu0GwA0411Ht3OU3OntXwsGmrmjI8ioGXI= google.golang.org/genproto/googleapis/api v0.0.0-20231016165738-49dd2c1f3d0b h1:CIC2YMXmIhYw6evmhPxBKJ4fmLbOFtXQN/GV3XOZR8k= @@ -621,6 +621,7 @@ google.golang.org/grpc v1.0.5/go.mod h1:yo6s7OP7yaDglbqo1J04qKzAhqBH6lvTonzMVmEd google.golang.org/grpc v1.59.0 h1:Z5Iec2pjwb+LEOqzpB2MR12/eKFhDPhuqW91O+4bwUk= google.golang.org/grpc v1.59.0/go.mod h1:aUPDwccQo6OTjy7Hct4AfBPD1GptF4fyUjIkQ9YtF98= google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= +google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= google.golang.org/protobuf v1.27.1/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= google.golang.org/protobuf v1.33.0 h1:uNO2rsAINq/JlFpSdYEKIZ0uKD/R9cpdv0T+yoGwGmI= google.golang.org/protobuf v1.33.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= diff --git a/pkg/api/dryrunclient.go b/pkg/api/dryrunclient.go index 406121a7e..0470ead56 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 3bb73e0cc..cb83ac18d 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/build.go b/pkg/compose/build.go index 89cc48bba..e1f9bd2cc 100644 --- a/pkg/compose/build.go +++ b/pkg/compose/build.go @@ -23,8 +23,6 @@ import ( "os" "path/filepath" - "github.com/moby/buildkit/util/progress/progressui" - "github.com/compose-spec/compose-go/v2/types" "github.com/containerd/containerd/platforms" "github.com/docker/buildx/build" @@ -39,14 +37,15 @@ import ( "github.com/docker/compose/v2/pkg/api" "github.com/docker/compose/v2/pkg/progress" "github.com/docker/compose/v2/pkg/utils" + "github.com/docker/docker/api/types/container" "github.com/docker/docker/builder/remotecontext/urlutil" - "github.com/docker/go-units" bclient "github.com/moby/buildkit/client" "github.com/moby/buildkit/session" "github.com/moby/buildkit/session/auth/authprovider" "github.com/moby/buildkit/session/secrets/secretsprovider" "github.com/moby/buildkit/session/sshforward/sshprovider" "github.com/moby/buildkit/util/entitlements" + "github.com/moby/buildkit/util/progress/progressui" specs "github.com/opencontainers/image-spec/specs-go/v1" "github.com/sirupsen/logrus" @@ -448,9 +447,9 @@ func (s *composeService) toBuildOptions(project *types.Project, service types.Se } func toUlimitOpt(ulimits map[string]*types.UlimitsConfig) *cliopts.UlimitOpt { - ref := map[string]*units.Ulimit{} + ref := map[string]*container.Ulimit{} for _, limit := range toUlimits(ulimits) { - ref[limit.Name] = &units.Ulimit{ + ref[limit.Name] = &container.Ulimit{ Name: limit.Name, Hard: limit.Hard, Soft: limit.Soft, diff --git a/pkg/compose/compose.go b/pkg/compose/compose.go index 5ed935120..e8a87561c 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 85941f8f6..107af78dd 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 73ff47372..14774de7a 100644 --- a/pkg/compose/create.go +++ b/pkg/compose/create.go @@ -33,6 +33,9 @@ import ( "github.com/compose-spec/compose-go/v2/types" "github.com/docker/compose/v2/internal/desktop" pathutil "github.com/docker/compose/v2/internal/paths" + "github.com/docker/compose/v2/pkg/api" + "github.com/docker/compose/v2/pkg/progress" + "github.com/docker/compose/v2/pkg/utils" moby "github.com/docker/docker/api/types" "github.com/docker/docker/api/types/blkiodev" "github.com/docker/docker/api/types/container" @@ -41,15 +44,10 @@ import ( "github.com/docker/docker/api/types/network" "github.com/docker/docker/api/types/strslice" "github.com/docker/docker/api/types/versions" - volume_api "github.com/docker/docker/api/types/volume" + volumetypes "github.com/docker/docker/api/types/volume" "github.com/docker/docker/errdefs" "github.com/docker/go-connections/nat" - "github.com/docker/go-units" "github.com/sirupsen/logrus" - - "github.com/docker/compose/v2/pkg/api" - "github.com/docker/compose/v2/pkg/progress" - "github.com/docker/compose/v2/pkg/utils" ) type createOptions struct { @@ -122,21 +120,21 @@ func (s *composeService) create(ctx context.Context, project *types.Project, opt } func prepareNetworks(project *types.Project) { - for k, network := range project.Networks { - network.Labels = network.Labels.Add(api.NetworkLabel, k) - network.Labels = network.Labels.Add(api.ProjectLabel, project.Name) - network.Labels = network.Labels.Add(api.VersionLabel, api.ComposeVersion) - project.Networks[k] = network + for k, nw := range project.Networks { + nw.Labels = nw.Labels.Add(api.NetworkLabel, k) + nw.Labels = nw.Labels.Add(api.ProjectLabel, project.Name) + nw.Labels = nw.Labels.Add(api.VersionLabel, api.ComposeVersion) + project.Networks[k] = nw } } func (s *composeService) ensureNetworks(ctx context.Context, networks types.Networks) error { - for i, network := range networks { - err := s.ensureNetwork(ctx, &network) + for i, nw := range networks { + err := s.ensureNetwork(ctx, &nw) if err != nil { return err } - networks[i] = network + networks[i] = nw } return nil } @@ -271,7 +269,7 @@ func (s *composeService) getCreateConfigs(ctx context.Context, WorkingDir: service.WorkingDir, Entrypoint: entrypoint, NetworkDisabled: service.NetworkMode == "disabled", - MacAddress: macAddress, + MacAddress: macAddress, //nolint:staticcheck // ignore SA1019: field is deprecated, but still used on API < v1.44. Labels: labels, StopSignal: service.StopSignal, Env: ToMobyEnv(env), @@ -679,8 +677,8 @@ func getDeployResources(s types.ServiceConfig) container.Resources { return resources } -func toUlimits(m map[string]*types.UlimitsConfig) []*units.Ulimit { - var ulimits []*units.Ulimit +func toUlimits(m map[string]*types.UlimitsConfig) []*container.Ulimit { + var ulimits []*container.Ulimit for name, u := range m { soft := u.Single if u.Soft != 0 { @@ -690,7 +688,7 @@ func toUlimits(m map[string]*types.UlimitsConfig) []*units.Ulimit { if u.Hard != 0 { hard = u.Hard } - ulimits = append(ulimits, &units.Ulimit{ + ulimits = append(ulimits, &container.Ulimit{ Name: name, Hard: int64(hard), Soft: int64(soft), @@ -1187,7 +1185,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 +1207,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 +1215,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 +1251,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 +1296,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 +1306,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 +1315,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 @@ -1379,7 +1376,7 @@ func (s *composeService) createVolume(ctx context.Context, volume types.VolumeCo eventName := fmt.Sprintf("Volume %q", volume.Name) w := progress.ContextWriter(ctx) w.Event(progress.CreatingEvent(eventName)) - _, err := s.apiClient().VolumeCreate(ctx, volume_api.CreateOptions{ + _, err := s.apiClient().VolumeCreate(ctx, volumetypes.CreateOptions{ Labels: volume.Labels, Name: volume.Name, Driver: volume.Driver, diff --git a/pkg/compose/down.go b/pkg/compose/down.go index c2fea1cad..baaff789b 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 6c6aea5d2..93590f215 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 7e78d0292..3d3f63104 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 16c16eb61..2d5602706 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 5619d92f5..4ba49eed4 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 563a184ca..8294b4deb 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 7aa78d27a..36c260aa8 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" @@ -397,7 +398,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, @@ -409,7 +410,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 @@ -457,7 +458,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 28d5c85ff..950e1623b 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 d8c255901..7365d6513 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 61c640f96..f08d62d4a 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 }