Compare commits

...
29 Commits
Author SHA1 Message Date
Paweł GronowskiandGitHub 148233243c Merge pull request #5686 from thaJeztah/26.1_backport_bump_xx
[26.1 backport] update xx to v1.6.1 for compatibility with alpine 3.21
2024-12-18 10:25:13 +00:00
Sebastiaan van Stijn 58f9a8908a update xx to v1.6.1 for compatibility with alpine 3.21
This fixes compatibility with alpine 3.21

- Fix additional possible `xx-cc`/`xx-cargo` compatibility issue with Alpine 3.21
- Support for Alpine 3.21
- Fix `xx-verify` with `file` 5.46+
- Fix possible error taking lock in `xx-apk` in latest Alpine without `coreutils`

full diff: https://github.com/tonistiigi/xx/compare/v1.5.0...v1.6.1

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
(cherry picked from commit 1e51ae7af2)
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2024-12-13 01:02:32 +01:00
Sebastiaan van Stijn b00870511b Dockerfile: update xx to v1.5.0
full diff: https://github.com/tonistiigi/xx/compare/v1.4.0...v1.5.0

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
(cherry picked from commit 1e6cbbc3f1)
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2024-12-13 01:02:08 +01:00
Sebastiaan van StijnandGitHub cede9c4679 Merge pull request #5675 from austinvazquez/cherry-pick-3284a80b05ea0e25b33cfd8ed383ee105d18a5bd-to-26.1
[26.1] update to go1.22.10
2024-12-07 10:38:00 +01:00
Sebastiaan van Stijn 5bf163914c update to go1.22.10
go1.22.10 (released 2024-12-03) includes fixes to the runtime and the syscall
package. See the Go 1.22.10 milestone on our issue tracker for details.

- https://github.com/golang/go/issues?q=milestone%3AGo1.22.10+label%3ACherryPickApproved
- full diff: https://github.com/golang/go/compare/go1.22.9...go1.22.10

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
(cherry picked from commit 3284a80b05)
Signed-off-by: Austin Vazquez <macedonv@amazon.com>
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2024-12-07 10:26:27 +01:00
Sebastiaan van StijnandGitHub 192e018b9e Merge pull request #5676 from austinvazquez/cherry-pick-9617e8d0ce8ef7d38bd2291eb7ba0da1a05fabc5-to-26.1
[26.1] gha: update to macOS 13, add macOS 14 arm64 (Apple Silicon M1)
2024-12-07 10:18:51 +01:00
Sebastiaan van StijnandAustin Vazquez 2f7257a1e7 gha: update to macOS 13, add macOS 14 arm64 (Apple Silicon M1)
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
(cherry picked from commit 9617e8d0ce)
Signed-off-by: Austin Vazquez <macedonv@amazon.com>
2024-12-06 23:55:00 -07:00
Paweł GronowskiandGitHub 93aae023da Merge pull request #5641 from austinvazquez/cherry-pick-35c87e326c4f5c39cfd7473473cc4a5c6647c366-to-26.1
[26.1 backport] update to go1.22.9
2024-11-22 11:04:57 +01:00
Paweł GronowskiandAustin Vazquez bb8de1a9f4 update to go1.22.9
- https://github.com/golang/go/issues?q=milestone%3AGo1.22.9+label%3ACherryPickApproved
- full diff: https://github.com/golang/go/compare/go1.22.8...go1.22.9

go1.22.9 (released 2024-11-06) includes fixes to the linker. See the
[Go 1.22.9 milestone](https://github.com/golang/go/issues?q=milestone%3AGo1.22.9+label%3ACherryPickApproved)
for details.

Signed-off-by: Paweł Gronowski <pawel.gronowski@docker.com>
(cherry picked from commit 35c87e326c)
Signed-off-by: Austin Vazquez <macedonv@amazon.com>
2024-11-22 01:17:53 +00:00
Sebastiaan van StijnandGitHub f144771a4a Merge pull request #5565 from austinvazquez/cherry-pick-baceb4b1586f38b9d6c031ab0a696f32c52852f3-to-26.1
[26.1 backport] docs, man: dockerd: add documentation for "--log-format" option
2024-10-21 22:03:05 +02:00
Sebastiaan van StijnandAustin Vazquez 27e5fb63f6 docs: dockerd: add documentation for --log-format option
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
(cherry picked from commit baceb4b158)
Signed-off-by: Austin Vazquez <macedonv@amazon.com>
2024-10-21 16:03:47 +00:00
Sebastiaan van StijnandAustin Vazquez e9865d577e man: dockerd: add description for --log-format option
This option was added in a08abec9f8d59eaa44c375900e254384a68c5a31,
as part of Docker v25.0, but did not update the docs and manpage.

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
(cherry picked from commit 9ae514fdc7)
Signed-off-by: Austin Vazquez <macedonv@amazon.com>
2024-10-21 16:03:35 +00:00
Sebastiaan van StijnandGitHub 7e698d9251 Merge pull request #5513 from austinvazquez/cherry-pick-a6ab65948e6ecaf4167e2ef91b24c30929296256-to-26.1
[26.1 backport] ci: update to go1.22.8
2024-10-08 15:02:53 +02:00
Sebastiaan van StijnandGitHub fb622dba9c Merge pull request #5510 from austinvazquez/cherry-pick-daea277ee839742be94e1f41d5c477f114a81273-to-26.1
[26.1 backport] volume/update: require 1 argument/fix panic
2024-10-08 10:48:35 +02:00
Laura BrehmandAustin Vazquez 23a8d38e25 volume/update: require 1 argument/fix panic
This command was declaring that it requires at least 1 argument, when it
needs exactly 1 argument. This was causing the CLI to panic when the
command was invoked with no argument:

`docker volume update`

Signed-off-by: Laura Brehm <laurabrehm@hey.com>
(cherry picked from commit daea277ee8)
Signed-off-by: Austin Vazquez <macedonv@amazon.com>
2024-10-08 04:53:08 +00:00
Austin Vazquez 1b1d411917 ci: update to go1.22.8
Signed-off-by: Austin Vazquez <macedonv@amazon.com>
(cherry picked from commit a6ab65948e)
Signed-off-by: Austin Vazquez <macedonv@amazon.com>
2024-10-08 04:08:02 +00:00
Sebastiaan van StijnandAustin Vazquez 7fff8a0334 gha: update codeql workflow to go1.22.7
commit d7d56599ca updated this
repository to go1.22, but the codeql action didn't specify a
patch version, and was missed.

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
(cherry picked from commit e1213edcc6)
Signed-off-by: Austin Vazquez <macedonv@amazon.com>
2024-10-08 04:07:12 +00:00
Paweł GronowskiandAustin Vazquez 60853f5404 update to go1.22.7
- https://github.com/golang/go/issues?q=milestone%3AGo1.22.7+label%3ACherryPickApproved
- full diff: https://github.com/golang/go/compare/go1.22.6...go1.22.7

These minor releases include 3 security fixes following the security policy:

- go/parser: stack exhaustion in all Parse* functions

    Calling any of the Parse functions on Go source code which contains deeply nested literals can cause a panic due to stack exhaustion.

    This is CVE-2024-34155 and Go issue https://go.dev/issue/69138.

- encoding/gob: stack exhaustion in Decoder.Decode

    Calling Decoder.Decode on a message which contains deeply nested structures can cause a panic due to stack exhaustion.

    This is a follow-up to CVE-2022-30635.

    Thanks to Md Sakib Anwar of The Ohio State University (anwar.40@osu.edu) for reporting this issue.

    This is CVE-2024-34156 and Go issue https://go.dev/issue/69139.

- go/build/constraint: stack exhaustion in Parse

    Calling Parse on a "// +build" build tag line with deeply nested expressions can cause a panic due to stack exhaustion.

    This is CVE-2024-34158 and Go issue https://go.dev/issue/69141.

View the release notes for more information:
https://go.dev/doc/devel/release#go1.23.1

Signed-off-by: Paweł Gronowski <pawel.gronowski@docker.com>
(cherry picked from commit 3bf39d25a0)
Signed-off-by: Austin Vazquez <macedonv@amazon.com>
2024-10-08 04:05:49 +00:00
Sebastiaan van StijnandGitHub 3c827aba41 Merge pull request #5405 from austinvazquez/cherry-pick-go1.22.6-to-26.1
[26.1 backport] update to go 1.22.6
2024-09-09 20:55:54 +02:00
Sebastiaan van StijnandAustin Vazquez dadb500666 update to go1.22.6
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
(cherry picked from commit d7d56599ca)
Signed-off-by: Austin Vazquez <macedonv@amazon.com>
2024-09-05 14:39:45 +00:00
Paweł GronowskiandAustin Vazquez 0c87528068 update to go1.21.13
- https://github.com/golang/go/issues?q=milestone%3AGo1.21.13+label%3ACherryPickApproved
- full diff: https://github.com/golang/go/compare/go1.21.12...go1.21.13

go1.21.13 (released 2024-08-06) includes fixes to the go command, the
covdata command, and the bytes package. See the [Go 1.21.13 milestone](https://github.com/golang/go/issues?q=milestone%3AGo1.21.13+label%3ACherryPickApproved)
on our issue tracker for details.

Signed-off-by: Paweł Gronowski <pawel.gronowski@docker.com>
(cherry picked from commit 434d8b75e8)
Signed-off-by: Austin Vazquez <macedonv@amazon.com>
2024-09-05 14:39:42 +00:00
Paweł GronowskiandGitHub 4edbb63162 Merge pull request #5396 from thaJeztah/26.1_backport_fix_plugins_CGO_ENABLED
[26.1 backport[] scripts/build/plugins: don't override CGO_ENABLED set by .variables
2024-09-05 13:42:59 +00:00
Sebastiaan van Stijn 8b95529d41 scripts/build/plugins: don't override CGO_ENABLED set by .variables
The `.variables` sets `CGO_ENABLED=1` on arm; https://github.com/docker/cli/blob/b0c41b78d8c80c5f8faa736cf3c74dc31092e443/scripts/build/.variables#L57-L68
And if enabled, it sets `-buildmode=pie`; https://github.com/docker/cli/blob/b0c41b78d8c80c5f8faa736cf3c74dc31092e443/scripts/build/.variables#L79-L88

But that looks to be conflicting with the hardcoded `CGO_ENABLED=0` in
this script, which causes the build to fail on go1.22;

    > [build-plugins 1/1] RUN --mount=ro --mount=type=cache,target=/root/.cache     xx-go --wrap &&     TARGET=/out ./scripts/build/plugins e2e/cli-plugins/plugins/*:
    0.127 Building static docker-helloworld
    0.127 + CGO_ENABLED=0
    0.127 + GO111MODULE=auto
    0.127 + go build -o /out/plugins-linux-arm/docker-helloworld -tags ' osusergo' -ldflags ' -X "github.com/docker/cli/cli/version.GitCommit=5c123b1" -X "github.com/docker/cli/cli/version.BuildTime=2024-09-02T13:52:17Z" -X "github.com/docker/cli/cli/version.Version=pr-5387" -extldflags -static' -buildmode=pie github.com/docker/cli/cli-plugins/examples/helloworld
    0.135 -buildmode=pie requires external (cgo) linking, but cgo is not enabled

This patch sets the CGO_ENABLED variable before sourcing `.variables`,
so that other variables which are conditionally set are handled correctly.

Before this PR:

    #18 [build-plugins 1/1] RUN --mount=ro --mount=type=cache,target=/root/.cache     xx-go --wrap &&     TARGET=/out ./scripts/build/plugins e2e/cli-plugins/plugins/*
    #18 0.123 Building static docker-helloworld
    #18 0.124 + CGO_ENABLED=0
    #18 0.124 + GO111MODULE=auto
    #18 0.124 + go build -o /out/plugins-linux-arm/docker-helloworld -tags ' osusergo' -ldflags ' -X "github.com/docker/cli/cli/version.GitCommit=c8c402e" -X "github.com/docker/cli/cli/version.BuildTime=2024-09-03T08:28:25Z" -X "github.com/docker/cli/cli/version.Version=pr-5381" -extldflags -static' -buildmode=pie github.com/docker/cli/cli-plugins/examples/helloworld
    ....

With this PR:

    #18 [build-plugins 1/1] RUN --mount=ro --mount=type=cache,target=/root/.cache     xx-go --wrap &&     TARGET=/out ./scripts/build/plugins e2e/cli-plugins/plugins/*
    #18 0.110 Building static docker-helloworld
    #18 0.110 + GO111MODULE=auto
    #18 0.110 + go build -o /out/plugins-linux-arm/docker-helloworld -tags '' -ldflags ' -X "github.com/docker/cli/cli/version.GitCommit=050d9d6" -X "github.com/docker/cli/cli/version.BuildTime=2024-09-03T09:19:05Z" -X "github.com/docker/cli/cli/version.Version=pr-5387"' github.com/docker/cli/cli-plugins/examples/helloworld
    ....

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
(cherry picked from commit 9e29967960)
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2024-09-03 12:57:24 +02:00
Paweł GronowskiandGitHub dea625ceff Merge pull request #5340 from thaJeztah/26.1_backport_fix_bps_limit
[26.1 backport] run: fix GetList return empty issue for throttledevice
2024-08-12 11:58:07 +02:00
Jianyong WuandSebastiaan van Stijn e1246ba4dc run: fix GetList return empty issue for throttledevice
Test "--device-read-bps" "--device-write-bps" will fail. The root
cause is that GetList helper return empty as its local variable
initialized to zero size.

This patch fix it by setting the related slice size to non-zero.

Signed-off-by: Jianyong Wu <wujianyong@hygon.cn>
Fixes: #5321
(cherry picked from commit 73e78a5822)
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2024-08-09 19:47:41 +02:00
Sebastiaan van StijnandGitHub a72d7cdbeb Merge pull request #5220 from vvoland/v26.1-5218
[26.1 backport] update to go1.21.12
2024-07-03 12:29:49 +02:00
Paweł Gronowski 400f12f7a5 update to go1.21.12
- https://github.com/golang/go/issues?q=milestone%3AGo1.21.12+label%3ACherryPickApproved
- full diff: https://github.com/golang/go/compare/go1.21.11...go1.21.12

These minor releases include 1 security fixes following the security policy:

net/http: denial of service due to improper 100-continue handling

The net/http HTTP/1.1 client mishandled the case where a server responds to a request with an "Expect: 100-continue" header with a non-informational (200 or higher) status. This mishandling could leave a client connection in an invalid state, where the next request sent on the connection will fail.

An attacker sending a request to a net/http/httputil.ReverseProxy proxy can exploit this mishandling to cause a denial of service by sending "Expect: 100-continue" requests which elicit a non-informational response from the backend. Each such request leaves the proxy with an invalid connection, and causes one subsequent request using that connection to fail.

Thanks to Geoff Franks for reporting this issue.

This is CVE-2024-24791 and Go issue https://go.dev/issue/67555.
View the release notes for more information:
https://go.dev/doc/devel/release#go1.21.12

**- Description for the changelog**

```markdown changelog
Update Go runtime to 1.21.12
```

Signed-off-by: Paweł Gronowski <pawel.gronowski@docker.com>
(cherry picked from commit d73d7d4ed3)
Signed-off-by: Paweł Gronowski <pawel.gronowski@docker.com>
2024-07-03 12:17:26 +02:00
Paweł GronowskiandGitHub 6eb67bf572 Merge pull request #5154 from thaJeztah/26.1_backport_goversion
[26.1 backport] cli/command: more go1.19 ("predeclared any")
2024-06-17 10:21:02 +02:00
Nick SiegerandSebastiaan van Stijn 5bab750c2b cli/command: more go1.19 ("predeclared any")
Signed-off-by: Nick Sieger <nick@nicksieger.com>
(cherry picked from commit d0057db3ac)
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2024-06-13 23:52:54 +02:00
15 changed files with 79 additions and 13 deletions
+1 -1
View File
@@ -48,7 +48,7 @@ jobs:
name: Update Go
uses: actions/setup-go@v5
with:
go-version: '1.21'
go-version: "1.22.10"
-
name: Initialize CodeQL
uses: github/codeql-action/init@v3
+3 -2
View File
@@ -46,7 +46,8 @@ jobs:
fail-fast: false
matrix:
os:
- macos-12
- macos-13 # macOS 13 on Intel
- macos-14 # macOS 14 on arm64 (Apple Silicon M1)
# - windows-2022 # FIXME: some tests are failing on the Windows runner, as well as on Appveyor since June 24, 2018: https://ci.appveyor.com/project/docker/cli/history
steps:
-
@@ -64,7 +65,7 @@ jobs:
name: Set up Go
uses: actions/setup-go@v5
with:
go-version: 1.21.11
go-version: "1.22.10"
-
name: Test
run: |
+2 -2
View File
@@ -4,8 +4,8 @@ ARG BASE_VARIANT=alpine
ARG ALPINE_VERSION=3.20
ARG BASE_DEBIAN_DISTRO=bookworm
ARG GO_VERSION=1.21.11
ARG XX_VERSION=1.4.0
ARG GO_VERSION=1.22.10
ARG XX_VERSION=1.6.1
ARG GOVERSIONINFO_VERSION=v1.3.0
ARG GOTESTSUM_VERSION=v1.10.0
ARG BUILDX_VERSION=0.12.1
+3
View File
@@ -1,3 +1,6 @@
// FIXME(thaJeztah): remove once we are a module; the go:build directive prevents go from downgrading language version to go1.16:
//go:build go1.19
package context
import (
+1 -1
View File
@@ -18,7 +18,7 @@ func newUpdateCommand(dockerCli command.Cli) *cobra.Command {
cmd := &cobra.Command{
Use: "update [OPTIONS] [VOLUME]",
Short: "Update a volume (cluster volumes only)",
Args: cli.RequiresMaxArgs(1),
Args: cli.ExactArgs(1),
RunE: func(cmd *cobra.Command, args []string) error {
return runUpdate(cmd.Context(), dockerCli, args[0], availability, cmd.Flags())
},
+22
View File
@@ -0,0 +1,22 @@
package volume
import (
"io"
"testing"
"github.com/docker/cli/internal/test"
"gotest.tools/v3/assert"
)
func TestUpdateCmd(t *testing.T) {
cmd := newUpdateCommand(
test.NewFakeCli(&fakeClient{}),
)
cmd.SetArgs([]string{})
cmd.SetOut(io.Discard)
cmd.SetErr(io.Discard)
err := cmd.Execute()
assert.ErrorContains(t, err, "requires exactly 1 argument")
}
+1 -1
View File
@@ -1,5 +1,5 @@
variable "GO_VERSION" {
default = "1.21.11"
default = "1.22.10"
}
variable "VERSION" {
default = ""
+1 -1
View File
@@ -1,6 +1,6 @@
# syntax=docker/dockerfile:1
ARG GO_VERSION=1.21.11
ARG GO_VERSION=1.22.10
ARG ALPINE_VERSION=3.20
ARG BUILDX_VERSION=0.12.1
+1 -1
View File
@@ -1,6 +1,6 @@
# syntax=docker/dockerfile:1
ARG GO_VERSION=1.21.11
ARG GO_VERSION=1.22.10
ARG ALPINE_VERSION=3.20
ARG GOLANGCI_LINT_VERSION=v1.55.2
+1 -1
View File
@@ -1,6 +1,6 @@
# syntax=docker/dockerfile:1
ARG GO_VERSION=1.21.11
ARG GO_VERSION=1.22.10
ARG ALPINE_VERSION=3.20
ARG MODOUTDATED_VERSION=v0.8.0
+30
View File
@@ -79,6 +79,7 @@ Options:
--label list Set key=value labels to the daemon
--live-restore Enable live restore of docker when containers are still running
--log-driver string Default driver for container logs (default "json-file")
--log-format string Set the logging format ("text"|"json") (default "text")
-l, --log-level string Set the logging level ("debug"|"info"|"warn"|"error"|"fatal") (default "info")
--log-opt map Default log driver options for containers (default map[])
--max-concurrent-downloads int Set the max concurrent downloads (default 3)
@@ -895,6 +896,33 @@ Alternatively, you can set custom locations for CDI specifications using the
When CDI is enabled for a daemon, you can view the configured CDI specification
directories using the `docker info` command.
#### <a name="log-format"></a> Daemon logging format
The `--log-format` option or "log-format" option in the [daemon configuration file](#daemon-configuration-file)
lets you set the format for logs produced by the daemon. The logging format should
only be configured either through the `--log-format` command line option or
through the "log-format" field in the configuration file; using both
the command-line option and the "log-format" field in the configuration
file produces an error. If this option is not set, the default is "text".
The following example configures the daemon through the `--log-format` command
line option to use `json` formatted logs;
```console
$ dockerd --log-format=json
# ...
{"level":"info","msg":"API listen on /var/run/docker.sock","time":"2024-09-16T11:06:08.558145428Z"}
```
The following example shows a `daemon.json` configuration file with the
"log-format" set;
```json
{
"log-format": "json"
}
```
### Miscellaneous options
IP masquerading uses address translation to allow containers without a public
@@ -1094,6 +1122,7 @@ The following is a full example of the allowed configuration options on Linux:
"labels": [],
"live-restore": true,
"log-driver": "json-file",
"log-format": "text",
"log-level": "",
"log-opts": {
"cache-disabled": "false",
@@ -1189,6 +1218,7 @@ The following is a full example of the allowed configuration options on Windows:
"insecure-registries": [],
"labels": [],
"log-driver": "",
"log-format": "text",
"log-level": "",
"max-concurrent-downloads": 3,
"max-concurrent-uploads": 5,
+1 -1
View File
@@ -1,6 +1,6 @@
# syntax=docker/dockerfile:1
ARG GO_VERSION=1.21.11
ARG GO_VERSION=1.22.10
FROM golang:${GO_VERSION}-alpine AS generated
ENV GOTOOLCHAIN=local
+4
View File
@@ -52,6 +52,7 @@ dockerd - Enable daemon mode
[**--label**[=*[]*]]
[**--live-restore**[=**false**]]
[**--log-driver**[=*json-file*]]
[**--log-format**="*text*|*json*"]
[**--log-opt**[=*map[]*]]
[**--mtu**[=*0*]]
[**--max-concurrent-downloads**[=*3*]]
@@ -324,6 +325,9 @@ unix://[/path/to/socket] to use.
Default driver for container logs. Default is **json-file**.
**Warning**: **docker logs** command works only for **json-file** logging driver.
**--log-format**="*text*|*json*"
Set the format for logs produced by the daemon. Default is "text".
**--log-opt**=[]
Logging driver specific options.
+1 -1
View File
@@ -94,7 +94,7 @@ func (opt *ThrottledeviceOpt) String() string {
// GetList returns a slice of pointers to ThrottleDevices.
func (opt *ThrottledeviceOpt) GetList() []*blkiodev.ThrottleDevice {
out := make([]*blkiodev.ThrottleDevice, 0, len(opt.values))
out := make([]*blkiodev.ThrottleDevice, len(opt.values))
copy(out, opt.values)
return out
}
+7 -1
View File
@@ -5,6 +5,12 @@
set -eu -o pipefail
# Disable CGO - we don't need it for these plugins.
#
# Important: this must be done before sourcing "./scripts/build/.variables",
# because some other variables are conditionally set whether CGO is enabled.
export CGO_ENABLED=0
source ./scripts/build/.variables
for p in cli-plugins/examples/* "$@" ; do
@@ -15,5 +21,5 @@ for p in cli-plugins/examples/* "$@" ; do
mkdir -p "$(dirname "${TARGET_PLUGIN}")"
echo "Building $GO_LINKMODE $(basename "${TARGET_PLUGIN}")"
(set -x ; CGO_ENABLED=0 GO111MODULE=auto go build -o "${TARGET_PLUGIN}" -tags "${GO_BUILDTAGS}" -ldflags "${GO_LDFLAGS}" ${GO_BUILDMODE} "github.com/docker/cli/${p}")
(set -x ; GO111MODULE=auto go build -o "${TARGET_PLUGIN}" -tags "${GO_BUILDTAGS}" -ldflags "${GO_LDFLAGS}" ${GO_BUILDMODE} "github.com/docker/cli/${p}")
done