Compare commits

...

173 Commits

Author SHA1 Message Date
fd3371eb7d Merge pull request #2810 from thaJeztah/19.03_backport_docs_maintainer
[19.03 backport] Replace deprecated instruction
2020-10-24 09:44:17 +02:00
01fc5a1ec3 Replace deprecated instruction
MAINTAINER is deprecated, replacing with LABEL as recommended by
https://docs.docker.com/engine/reference/builder/#maintainer-deprecated

Signed-off-by: Charlotte Mach <charlotte.mach@fs.lmu.de>
(cherry picked from commit aa4cb24739)
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2020-10-24 01:13:34 +02:00
8363956559 Merge pull request #2797 from thaJeztah/19.03_backport_reversion
[19.03 backport] docs: update 20.03 -> 20.10 in deprecated.md
2020-10-16 22:49:04 +02:00
3b3e295c4b docs: update 20.03 -> 20.10 in deprecated.md
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
(cherry picked from commit 6c0a3dfbff)
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2020-10-16 02:23:14 +02:00
3ce6b9faea Merge pull request #2781 from thaJeztah/19.03_backport_fix_links
[19.03 backport] docs: fix broken links in build reference
2020-10-07 11:37:09 +02:00
d1b44aa298 docs: fix broken links in build reference
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
(cherry picked from commit 3fe574b7ef)
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2020-10-07 11:08:24 +02:00
7c0824cf3f Merge pull request #2776 from thaJeztah/19.03_backport_deprecate_experimental_options
[19.03 backport] Deprecate configuration options for experimental CLI features
2020-10-02 18:02:28 +02:00
20bc15f618 docs/deprecated: remove minor versions
Some deprecations are ammended during a major (YY.MM) release, to
inform users as early as possible about deprecations. Removing the
minor version from this overview clarifies that features are
marked deprecated during which major release's lifecycle.

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
(cherry picked from commit de8b696ed6)
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2020-10-02 17:14:53 +02:00
3172219932 docs: deprecate CLI options for experimental CLI features
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
(cherry picked from commit 48822564b6)
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2020-10-02 17:09:55 +02:00
f132c8ad4a docs: add /go/experimental/ vanity URL
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
(cherry picked from commit c2225ad126)
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2020-10-02 17:07:44 +02:00
11b255cb7d Merge pull request #2758 from thaJeztah/19.03_backport_update_security_link
[19.03 backport] docs: update URL for security landing page
2020-09-29 16:37:05 -07:00
d3fcef0ffa Merge pull request #2760 from thaJeztah/19.03_backport_fix_yaml_gen
[19.03 backport] docs: fix generated YAML due to trailing whitespace
2020-09-29 14:36:08 -07:00
df5ca0c950 docs: fix generated YAML due to trailing whitespace
If a file contains trailing whitespace, the YAML generator uses a
compact format, which is hard to read.

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
(cherry picked from commit 2484a30534)
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2020-09-29 22:02:11 +02:00
5057d34272 docs: update URL for security landing page
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
(cherry picked from commit 54bbd782bf)
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2020-09-29 21:22:13 +02:00
b53d702737 Merge pull request #2749 from thaJeztah/19.03_backport_fix_logs_example
[19.03 backport] docs: fix "docker logs" example missing container name
2020-09-29 10:21:47 +02:00
4620b42c3b Merge pull request #2750 from thaJeztah/19.03_backport_rewrite_build_env
[19.03 backport] builder: rephrase ENV section, remove examples for ENV key value without '='
2020-09-29 10:20:43 +02:00
278f30b82b Add test-case for env with, and without =
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
(cherry picked from commit 0eb3cfd261)
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2020-09-28 14:16:03 +02:00
f526bcdb53 builder: add note about alternative syntax
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
(cherry picked from commit a4a3d2f94d)
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2020-09-28 14:16:00 +02:00
10973d6ddf builder: rephrase ENV section, remove examples for ENV key value without '='
The `ENV key value` form can be ambiguous, for example, the following defines
a single env-variable (`ONE`) with value `"TWO= THREE=world"`:

    ENV ONE TWO= THREE=world

While we cannot deprecate/remove that syntax (as it would break existing
Dockerfiles), we should reduce exposure of the format in our examples.

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
(cherry picked from commit 0a0037c6fd)
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2020-09-28 14:15:48 +02:00
8c8fb03f15 docs: fix "docker logs" example missing container name
Thanks to rvsasseen for spotting this, and Maximillian Xavier
for the initial pull request.

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
(cherry picked from commit bcb2a4c925)
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2020-09-28 14:03:21 +02:00
c80dda68d8 Merge pull request #2725 from thaJeztah/19.03_backport_update_caps_docs_and_completion
[19.03 backport] Update documentation on capabilities, and add missing CAP_AUDIT_READ
2020-09-18 11:58:03 +02:00
c9a03ab5f4 Bash-completion: add CAP_AUDIT_READ
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
(cherry picked from commit 5b035964c4)
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2020-09-18 01:33:37 +02:00
ffa0e1d36e docs: document CAP_AUDIT_READ
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
(cherry picked from commit 884a5ffbdf)
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2020-09-18 01:33:35 +02:00
3d74f7ab48 docs: document optional "CAP_" prefix for capabilities
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
(cherry picked from commit 4e58c29513)
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2020-09-18 01:33:33 +02:00
0a207d5095 docs: sort list of capabilities alphabetically
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
(cherry picked from commit 5bbdcd1c9d)
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2020-09-18 01:33:31 +02:00
9aa3848b06 Merge pull request #2724 from thaJeztah/19.03_backport_cap_completion
[19.03 backport] Complete capabilites with and without "CAP_" prefix.
2020-09-18 01:31:46 +02:00
75411a2233 Complete capabilites with and without "CAP_" prefix.
Signed-off-by: Harald Albers <github@albersweb.de>
(cherry picked from commit 015cb98846)
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2020-09-16 15:53:03 +02:00
cd8016b6bc Merge pull request #2674 from thaJeztah/19.03_backport_bump_golang_1.13.15
[19.03 backport] Bump Golang 1.13.15
2020-09-15 16:02:04 -07:00
cc30457076 Merge pull request #2720 from thaJeztah/19.03_remove_engine_alias
[19.03] vendor: stop using docker/engine fork for vendoring
2020-09-15 15:03:36 +02:00
96b16f2540 Merge pull request #2719 from thaJeztah/19.03_update_buildkit
[19.03] vendor: buildkit v0.6.4-32-gdf89d4dc
2020-09-15 15:02:47 +02:00
896eb7123a [19.03] vendor: stop using docker/engine fork for vendoring
Release branches and tags are published on the upstream repository
again, so no need to use the docker/engine repository anymore.

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2020-09-15 11:44:50 +02:00
aebe8b0660 [19.03] vendor: buildkit v0.6.4-32-gdf89d4dc
full diff: ae10b292fe...v0.6.4-32-gdf89d4dc

- progressui: fix panic on terminals with zero height

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2020-09-15 11:35:09 +02:00
d6b05747dd [19.03] vendor: tonistiigi/fsutil v0.0.0-20191018213012-0f039a052ca1
full diff: 3d2716dd0a...0f039a052c

- receive: use filter on receive diff
    - prevents incremental transfers with userns because the metadata
      on disk is always different than the one being transferred.

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2020-09-15 11:35:06 +02:00
675a209afc Merge pull request #2667 from thaJeztah/19.03_backport_remove_from_index
[19.03 backport] documentation updates
2020-09-14 14:56:16 +02:00
1fbcf9c7b6 Merge pull request #2717 from thaJeztah/19.03_backport_update_git_remote_description
[19.03 backport] docs/build: add note about git subdirectories with BuildKit
2020-09-14 14:43:16 +02:00
9a65c1c861 docs/build: add note about git subdirectories with BuildKit
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
(cherry picked from commit b4db7e38bc)
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2020-09-14 11:39:08 +02:00
bcb1c8486b Merge pull request #2695 from thaJeztah/19.03_backport_fix_vbomml_util
[19.03 backport] Replace vbom.ml/util with fvbommel/sortorder
2020-08-28 16:25:36 +02:00
a6c15a5e60 Replace vbom.ml/util with fvbommel/sortorder
The vanity domain is down, and the project has moved
to a new location.

vendor check started failing because of this:

    Collecting initial packages
    Download dependencies
    unrecognized import path "vbom.ml/util" (https fetch: Get https://vbom.ml/util?go-get=1: dial tcp: lookup vbom.ml on 169.254.169.254:53: no such host)

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
(cherry picked from commit 6703919c71)
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2020-08-28 16:17:03 +02:00
36cdb166dc Bump Golang 1.13.15
full diff: https://github.com/golang/go/compare/go1.13.14...go1.13.15

go1.13.15 (released 2020/08/06) includes security fixes to the encoding/binary
package. See the Go 1.13.15 milestone on the issue tracker for details.

https://github.com/golang/go/issues?q=milestone%3AGo1.13.15+label%3ACherryPickApproved

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
(cherry picked from commit 2315975272)
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2020-08-10 17:26:33 +02:00
5c5486d910 Replaces ADD with COPY in the COPY section
Possibly a typo from reusing text from the ADD section.

Signed-off-by: Hugo Gabriel Eyherabide <hugogabriel.eyherabide@gmail.com>
(cherry picked from commit 86cbe28510)
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2020-08-05 09:25:00 +02:00
9152bf265e docs: remove docs for —-from=index
Naming stages is the preferred method for using
multi-stage builds.

Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
(cherry picked from commit 5dd9bd4c2c)
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2020-08-03 12:15:32 +02:00
80fd48bcb7 Merge pull request #2635 from thaJeztah/19.03_backport_bump_golang_1.13.14
[19.03 backport] Bump Golang 1.13.14
2020-07-21 15:05:41 +02:00
e5e227672b Bump Golang 1.13.14
full diff: https://github.com/golang/go/compare/go1.13.13...go1.13.14

go1.13.14 (released 2020/07/16) includes fixes to the compiler, vet, and the
database/sql, net/http, and reflect packages. See the Go 1.13.14 milestone on
the issue tracker for details:

https://github.com/golang/go/issues?q=milestone%3AGo1.13.14+label%3ACherryPickApproved

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
(cherry picked from commit cdfafe03e3)
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2020-07-17 17:07:06 +02:00
79a6c494e5 Merge pull request #2633 from thaJeztah/19.03_backport_bump_golang_1.13.13
[19.03 backport] Bump Golang 1.13.13
2020-07-17 09:39:44 +02:00
5e05ef3459 Merge pull request #2631 from cpuguy83/19.03_handle_close_error_on_save
[19.03] handle close error on save
2020-07-16 20:01:53 +02:00
64d25cc6eb Bump Golang 1.13.13
full diff: https://github.com/golang/go/compare/go1.13.12...go1.13.13

go1.13.13 (released 2020/07/14) includes security fixes to the crypto/x509 and
net/http packages. See the Go 1.13.13 milestone on the issue tracker for details.

https://github.com/golang/go/issues?q=milestone%3AGo1.13.13+label%3ACherryPickApproved

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
(cherry picked from commit dc4f7fb375)
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2020-07-16 15:47:06 +02:00
1b96aa29ca Merge pull request #2629 from thaJeztah/19.03_backport_circleci_updates
[19.03 backport] CircleCI updates
2020-07-16 11:16:54 +02:00
aaf1170520 Handle errors on close in config file write.
I'm not sure if this fixes anything, however I have seen some weird
behavior on Windows where temp config files are left around and there
doesn't seem to be any errors reported.

Signed-off-by: Brian Goff <cpuguy83@gmail.com>
(cherry picked from commit d02173090f)
Signed-off-by: Brian Goff <cpuguy83@gmail.com>
2020-07-15 12:31:59 -07:00
14010c88b4 config: preserve ownership and permissions on configfile
When running `docker login` or `docker logout`, the CLI updates
the configuration file by creating a temporary file, to replace
the old one (if exists).

When using `sudo`, this caused the file to be created as `root`,
making it inaccessible to the current user.

This patch updates the CLI to fetch permissions and ownership of
the existing configuration file, and applies those permissions
to the new file, so that it has the same permissions as the
existing file (if any).

Currently, only done for "Unix-y" systems (Mac, Linux), but
can be implemented for Windows in future if there's a need.

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
(cherry picked from commit 22a291f703)
Signed-off-by: Brian Goff <cpuguy83@gmail.com>
2020-07-15 12:31:56 -07:00
3d64a5d4b0 Move circle.yml to .circleci/config.yml
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
(cherry picked from commit 77e78a2fea)
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2020-07-15 18:24:20 +02:00
d0b6560881 CircleCI: update docker versions used in CI
CircleCI now has 19.03; https://circleci.com/docs/2.0/building-docker-images/#docker-version

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
(cherry picked from commit 41255a4315)
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2020-07-15 18:23:51 +02:00
b0a78cc1ad Merge pull request #2623 from s0j/s0j_19.03_bump-crypto-readconsole
[19.03 backport] vendor: golang.org/x/crypto 2aa609cf4a9d7d1126360de73b55b6002f9e052a
2020-07-09 11:58:42 -07:00
ab8bd02fc0 vendor: golang.org/x/crypto 2aa609cf4a9d7d1126360de73b55b6002f9e052a
full diff: 69ecbb4d6d...2aa609cf4a

The cherry-pick didn't apply cleanly, so I took the single 'golang.org/x/crypto'
change in vendor.conf and re-ran vndr.

The motivation behind this is to address the input regression on Windows caused by:
6d4e4cb37c

.. and addressed in:
ecb85df213

(cherry picked from commit 37d184fe16)
Signed-off-by: Shane Jarych <sjarych@mirantis.com>
2020-07-09 11:54:18 -04:00
18d6f8f6bf Merge pull request #2620 from thaJeztah/19.03_backport_builder_comment_info
[19.03 backport] docs/builder: add note about handling of leading whitespace
2020-07-09 15:11:24 +02:00
7498d9cc49 docs/builder: add note about handling of leading whitespace
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
(cherry picked from commit 6776f7cdcd)
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2020-07-06 13:37:08 +02:00
cb59cafc3e Merge pull request #2609 from thaJeztah/19.03_backport_docs_fixes
[19.03 backport] assorted docs fixes
2020-06-30 14:56:30 +02:00
541f050e1e Merge pull request #2608 from thaJeztah/19.03_backport_vendor_bumps
[19.03 backport] minor vendor bumps
2020-06-30 14:55:50 +02:00
ac7723056a docs: fix example output for docker plugin ls
The output format was changed to combine tag and name in a single
column, but this change was never reflected in the docs.

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
(cherry picked from commit c253918eaf)
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2020-06-30 14:45:35 +02:00
9c9ff4369d list state ready for filtering in stack_ps.md
Signed-off-by: SimonHeimberg <simon.heimberg@heimberg-ea.ch>
(cherry picked from commit 6a20e87ae8)
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
(cherry picked from commit 4840a8dfbe)
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2020-06-30 14:45:22 +02:00
e3b981c18d vendor konsorten/go-windows-terminal-sequences v1.0.3
full diff: https://github.com/konsorten/go-windows-terminal-sequences/compare/v1.0.2...v1.0.3

Fixes a panic when using logrus on Go 1.14

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
(cherry picked from commit 4f65b65e81)
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2020-06-30 14:32:24 +02:00
ec276f3a68 vendor: mitchellh/mapstructure v1.0.0
we were only one commit behind v1.0.0, so updating to that
version; we can do a follow-up to update to the latest minor
release (v1.3.0)

full diff: f15292f7a6...v1.0.0

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
(cherry picked from commit cf543e1308)
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2020-06-30 14:28:54 +02:00
c9125cc39b vendor: beorn7/perks v1.0.1
full diff: e7f67b54ab...v1.0.1

adds go module support

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
(cherry picked from commit 66dd9f29fa)
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2020-06-30 14:24:26 +02:00
0ed913b885 Merge pull request #2592 from thaJeztah/19.03_backport_logout_config_out_of_sync2
[19.03 backport] Don't filter out registries to logout from with config file contents
2020-06-17 10:27:03 -07:00
ab45dc8fdc Merge pull request #2591 from thaJeztah/19.03_backport_docs_fixes2
[19.03 backport] assorted docs fixes
2020-06-17 17:36:01 +02:00
5a12f90b4c Don't filter out registries to logout from with config file contents
Previously, if a registry AuthInfo was not present in the CLI config file, docker logout could not be used
to ask the credential helper to forget about it. It causes problem for people working with
multiple alternative config files, and it causes problems for cases like Docker Desktop w/ WSL 2, as
it uses the same win32 credential helper as the Windows CLI, but a different config file, leading to
bugs where I cannot logout from a registry from wsl2 if I logged in from Windows and vice-versa.

Signed-off-by: Simon Ferquel <simon.ferquel@docker.com>
(cherry picked from commit 6248f2fb6f)
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2020-06-17 17:32:39 +02:00
521a636a86 Add MOBY_DISABLE_PIGZ to dockerd environment variable docs
This reflects a Moby change to add documentation around
disabling a new feature -- to use pgzip to decompress
layers, rather than the built-in go gzip.

Signed-off-by: Sargun Dhillon <sargun@sargun.me>
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
(cherry picked from commit e1148e2c70)
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2020-06-17 16:50:48 +02:00
8b8ec04cd6 Split up environment variable documentation between cli and dockerd
This creates a new section of environment variables in the CLI docs
which documents environment variables that can both be used on dockerd
and on docker cli.

In addition, it moves some of the environment variable documentation
from the docker cli documentation to the dockerd documentation, as
these environment variables are dockerd-specific.

Signed-off-by: Sargun Dhillon <sargun@sargun.me>
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
(cherry picked from commit ad301e7410)
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2020-06-17 16:50:38 +02:00
4e7c875e3b Fix broken link
Signed-off-by: Daisuke Ito <itodaisuke00@gmail.com>
(cherry picked from commit 0f7260d1c7)
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2020-06-17 16:50:24 +02:00
2e6ff15dac Merge pull request #2557 from thaJeztah/19.03_backport_fix_plugin_api_link
[19.03 backport] docs/extend: fix broken link and some markdown touch-ups
2020-06-17 16:35:12 +02:00
f56d1b3646 Merge pull request #2575 from thaJeztah/19.03_backport_bump_golang_1.13.12
[19.03 backport] Bump Golang 1.13.12
2020-06-17 16:33:29 +02:00
8e7ff60ee1 Merge pull request #2589 from thaJeztah/19.03_backport_bump_x_text
[19.03 backport] vendor: golang.org/x/text v0.3.3 (CVE-2020-14040)
2020-06-17 16:16:12 +02:00
6cb678f16f vendor: golang.org/x/text v0.3.3
full diff: https://github.com/golang/text/compare/v0.3.2...v0.3.3

includes a fix for [CVE-2020-14040][1]

[1]: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2020-14040

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
(cherry picked from commit 668aea3f13)
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2020-06-17 13:31:37 +02:00
4515c51870 vendor: golang.org/x/text v0.3.2
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
(cherry picked from commit e32fe12ae3)
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2020-06-17 13:30:29 +02:00
43a4e09bb2 Merge pull request #2586 from thaJeztah/19.03_backport_context_dont_loose_additional_fields
[19.03 backport] Don't loose additional metadata fields
2020-06-17 12:20:55 +02:00
cfa1fd9acd Don't loose additional metadata fields
Signed-off-by: Simon Ferquel <simon.ferquel@docker.com>
(cherry picked from commit 2ab4b4d536)
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2020-06-16 15:31:21 +02:00
6051b36dbf Merge pull request #2570 from thaJeztah/19.03_backport_hardcode_name_in_errors
[19.03 backport] Use consistent name for errors
2020-06-12 16:20:30 +02:00
31d338dd3a Bump Golang 1.13.12
go1.13.12 (released 2020/06/01) includes fixes to the runtime, and the go/types
and math/big packages. See the Go 1.13.12 milestone on the issue tracker for details:

https://github.com/golang/go/issues?q=milestone%3AGo1.13.12+label%3ACherryPickApproved

full diff: https://github.com/golang/go/compare/go1.13.11...go1.13.12

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
(cherry picked from commit 1cd69c41e6)
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2020-06-11 16:35:23 +02:00
9cc05b9cec Merge pull request #2548 from thaJeztah/19.03_backport_fix_dockerd_api_link
[19.03 backport] docs: fix broken link in dockerd.md
2020-06-11 15:21:08 +02:00
936d328da9 Use consistent name for errors
This prevents inconsistent errors when using a symlink, or when renaming
the binary;

Before this change;

    ln -s $(which docker) toto
    ./toto rune
    docker: 'rune' is not a docker command.

    ./toto run daslkjadslkjdaslkj
    Unable to find image 'adslkjadslakdsj:latest' locally
    ./toto: Error response from daemon: pull access denied for adslkjadslakdsj, repository does not exist or may require 'docker login': denied: requested access to the resource is denied.

After this change:

    ln -s $(which docker) toto
    ./toto rune
    docker: 'rune' is not a docker command.

    ./toto run daslkjadslkjdaslkj
    Unable to find image 'adslkjadslakdsj:latest' locally
    docker: Error response from daemon: pull access denied for adslkjadslakdsj, repository does not exist or may require 'docker login': denied: requested access to the resource is den>

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
(cherry picked from commit a3af1f47da)
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2020-06-09 17:02:33 +02:00
dd360c7c0d Merge pull request #2558 from tiborvass/19.03-expenv-panic
[19.03] Fix bug with panic when DOCKER_CLI_EXPERIMENTAL environment variable is incorrect
2020-05-28 13:41:25 -07:00
92b54c256a Merge pull request #2560 from tiborvass/19.03-sshfix
[19.03] ssh: avoid setting flags through hostname
2020-05-28 13:34:20 -07:00
2ee7981985 ssh: avoid setting flags through hostname
Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
(cherry picked from commit d30970e3b1)
Signed-off-by: Tibor Vass <tibor@docker.com>
2020-05-28 20:18:03 +00:00
e90b6bcb62 Fix bug with panic when DOCKER_CLI_EXPERIMENTAL environment variable is incorrect
Signed-off-by: Daniil Nikolenko <qoo2p5@gmail.com>
(cherry picked from commit cb010db830)
Signed-off-by: Tibor Vass <tibor@docker.com>
2020-05-28 19:21:44 +00:00
97afb72954 docs/extend: fix broken link and some markdown touch-ups
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
(cherry picked from commit a968359e08)
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2020-05-28 17:30:32 +02:00
c280cdfd66 docs: fix broken link in dockerd.md
The Engine API docs are not available in this GitHub repository,
so linking to the docs.docker.com website instead.

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
(cherry picked from commit 98a3d6a48a)
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2020-05-25 11:09:18 +02:00
fd7874f16d Merge pull request #2532 from thaJeztah/19.03_backport_bump_golang_1.13.11
[19.03 backport] Bump Golang 1.13.11
2020-05-20 10:43:45 -07:00
a945f0e7e0 Merge pull request #2538 from silvin-lubecki/fix-version-old-engine-19-03
[19.03 backport] Fix version old engine 19 03
2020-05-20 10:35:44 -07:00
0f59532a1a Run e2e tests with different engine version on Jenkins
Rewrite Jenkinsfile to new declarative syntax without parallel as the e2e framework is not tailored for than (container name clash, port clash,...)

Signed-off-by: Tibor Vass <tibor@docker.com>
Signed-off-by: Silvin Lubecki <silvin.lubecki@docker.com>

(cherry picked from commit 74919d0569)
2020-05-20 19:02:21 +02:00
95df3499bb Add a new Makefile variable to override DockerInDocker engine version we use to run e2e tests
Signed-off-by: Silvin Lubecki <silvin.lubecki@docker.com>
(cherry picked from commit 15d6565e49)
2020-05-20 18:58:28 +02:00
2d1476c6f0 Partially revert cf663b526a as it breaks the version negotiation with an older docker engine.
Signed-off-by: Silvin Lubecki <silvin.lubecki@docker.com>
(cherry picked from commit 54f766d240)
2020-05-20 18:57:39 +02:00
936e9717ea Bump Golang 1.13.11
full diff: https://github.com/golang/go/compare/go1.13.10...go1.13.11

go1.13.11 (released 2020/05/14) includes fixes to the compiler. See the Go 1.13.11
milestone on the issue tracker for details:

https://github.com/golang/go/issues?q=milestone%3AGo1.13.11+label%3ACherryPickApproved

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
(cherry picked from commit 1ecca982ed)
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2020-05-18 16:00:26 +02:00
ab108430b2 Merge pull request #2520 from thaJeztah/19.03_backport_markup_touch_ups
[19.03 backport] docs: more Markdown touch-ups
2020-05-11 19:24:50 +02:00
489c7e9cda docs: more Markdown touch-ups
- replace the "none" code-hint with "console"
- some changes in the "experimental" instructions
- reformat some notes
- reformat / re-indent JSON output to use 2 spaces (for consistency)
- split JSON outputs to separate code-block so that it can be highlighted

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
(cherry picked from commit 4d948e468b)
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2020-05-11 17:57:13 +02:00
1705e47cdf Merge pull request #2508 from thaJeztah/19.03_backport_config_dont_init
[19.03 backport] config: don't call homedir on init()
2020-05-11 16:27:11 +02:00
a9a83d2e71 Merge pull request #2516 from thaJeztah/19.03_backport_bump_klog
[19.03 backport] vendor: k8s.io/klog v1.0.0-2-g4ad0115
2020-05-11 15:58:09 +02:00
ae2012cced Merge pull request #2518 from thaJeztah/19.03_backport_bump_pkg_errors
[19.03 backport] vendor: pkg/errors v0.9.1
2020-05-11 15:36:22 +02:00
052a71c4d0 Merge pull request #2509 from thaJeztah/19.03_backport_docs_fixes
[19.03 backport] documentation fixes
2020-05-11 14:40:18 +02:00
9a57ea8869 Update some uses of errors.Cause() to errors.Is()
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
(cherry picked from commit bb7ef2cb3a)
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2020-05-11 14:39:24 +02:00
345b0e79e5 vendor: pkg/errors v0.9.1
full diff: https://github.com/pkg/errors/compare/v0.8.1...v0.9.1

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
(cherry picked from commit 082a8bd892)
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2020-05-11 14:39:15 +02:00
62a9babca6 vendor: k8s.io/klog v1.0.0-2-g4ad0115
Temporarily vendoring tip of the release-1.x branch, to address
docker context inspect being slow on Windows because this package
performs user lookup through `os.Current()` during `init()`.

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
(cherry picked from commit 466c50f939)
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2020-05-10 14:25:33 +02:00
dbc73eafcb docs: fix, and touch-up "docker context" docs
Using `/var/run/docker.sock` as docker host is invalid, and causes
an error, so adding `unix://` to it.

In addition, we document the name of the context to go after the
options, so change the order in the examples.

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
(cherry picked from commit 803b9071e7)
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2020-05-09 12:51:36 +02:00
e06fc01c1b Update dead link and add missing info on COPY
1. Fix dead URL to [Dockerfile best practices](https://docs.docker.com/develop/develop-images/dockerfile_best-practices/#leverage-build-cache).
2. Add missing information about cache invalidation by `COPY`. It works in the same way as in the case of `ADD`. Informing only about the `ADD`s behavior is misleading as one can infer that these two directives differ in this regard.
3. Add missing info on RUN cache invalidation by COPY

Signed-off-by: Maciej Kalisz <maciej.d.kalisz@gmail.com>
(cherry picked from commit ef414633d6)
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2020-05-09 12:51:09 +02:00
8434242c74 config: don't call homedir on init()
This patch changes the package to lazily obtain the user's home-
directory on first use, instead of when initializing the package.

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
(cherry picked from commit 8a30653ed5)
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2020-05-09 12:47:39 +02:00
bef0d567ac Merge pull request #2493 from thaJeztah/19.03_backport_update_dockerd_usage
[19.03 backport] docs: update usage output for dockerd (19.03)
2020-05-04 16:17:28 +02:00
65c37227a9 docs: update usage output for dockerd (19.03)
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
(cherry picked from commit d096339f41)
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2020-05-04 13:02:31 +02:00
55a5ab0f0a docs: fix order of flags in usage, and fix missing quote
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
(cherry picked from commit 9a58504d33)
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2020-05-04 12:53:20 +02:00
a2d8a8a4cb Merge pull request #2484 from thaJeztah/19.03_backport_fix_builder_link
[19.03 backport] builder: fix broken link
2020-04-30 14:47:08 -07:00
c150ba2b85 builder: fix broken link
This link was broken when generating the documentation (due to
a bug in Jekyll not converting wrapped internal links)

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
(cherry picked from commit bc58d655c0)
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2020-04-30 21:48:14 +02:00
3929933368 Merge pull request #2457 from thaJeztah/19.03_backport_lazy_feature_detection
[19.03 backport] cli: perform feature detection lazily
2020-04-30 17:43:14 +02:00
62baa3ce57 Merge pull request #2471 from thaJeztah/19.03_backport_fix_bind_panic
[19.03 backport] fix panic on single-character volumes
2020-04-30 17:31:35 +02:00
7a2de8165b Merge pull request #2470 from thaJeztah/19.03_backport_bump_yaml
[19.03 backport] vendor: bump gopkg.in/yaml.v2 v2.2.8
2020-04-30 17:22:21 +02:00
0ea509c77c Merge pull request #2481 from thaJeztah/19.03_backport_fix_run_reference_links
[19.03 backport] docs: fix links, and minor markdown touch-ups
2020-04-30 01:09:58 +02:00
81909d70f0 docs: fix links, and minor markdown touch-ups
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
(cherry picked from commit 116c9a1f59)
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2020-04-30 00:19:48 +02:00
cf663b526a cli: perform feature detection lazily
- Perform feature detection when actually needed, instead of during
  initializing
- Version negotiation is performed either when making an API request,
  or when (e.g.) running `docker help` (to hide unsupported features)
- Use a 2 second timeout when 'pinging' the daemon; this should be
  sufficient for most cases, and when feature detection failed, the
  daemon will still perform validation (and produce an error if needed)
- context.WithTimeout doesn't currently work with ssh connections (connhelper),
  so we're only applying this timeout for tcp:// connections, otherwise
  keep the old behavior.

Before this change:

    time sh -c 'DOCKER_HOST=tcp://42.42.42.41:4242 docker help &> /dev/null'
    real   0m32.919s
    user   0m0.370s
    sys    0m0.227s

    time sh -c 'DOCKER_HOST=tcp://42.42.42.41:4242 docker context ls &> /dev/null'
    real   0m32.072s
    user   0m0.029s
    sys    0m0.023s

After this change:

    time sh -c 'DOCKER_HOST=tcp://42.42.42.41:4242 docker help &> /dev/null'
    real   0m 2.28s
    user   0m 0.03s
    sys    0m 0.03s

    time sh -c 'DOCKER_HOST=tcp://42.42.42.41:4242 docker context ls &> /dev/null'
    real   0m 0.13s
    user   0m 0.02s
    sys    0m 0.02s

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
(cherry picked from commit b39739123b)
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2020-04-29 17:12:23 +02:00
c44c18e088 docker build: check experimental --platform on pre-run
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
(cherry picked from commit a88a1bea23)
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2020-04-29 17:12:21 +02:00
25f04876d1 app-214 Load Client info in getter function
Signed-off-by: Anca Iordache <anca.iordache@docker.com>

Possible approach for client info

- split ClientInfo() into ClientInfo() and loadClientInfo()
- split ConfigFile() into ConfigFile() and loadConfigFile()
- ConfigFile() and ClientInfo() call their corresponding loadXX function
  if it has not yet been loaded; this allows them to be used before
  Initialize() was called.
- Initialize() *always* (re-)loads the configuration; this makes sure
  that the correct configuration is used when actually calling commands.

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
(cherry picked from commit 22a5dad847)
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2020-04-29 17:12:18 +02:00
e470eef36f Merge pull request #2469 from thaJeztah/19.03_backport_docs
[19.03 backport] assorted docs fixes
2020-04-28 12:02:54 +02:00
4ad65fc358 fix panic on single-character volumes
Before this change, this would cause a panic:

    docker run -it --rm -v 1:/1 alpine
    panic: runtime error: index out of range

    goroutine 1 [running]:
    github.com/docker/cli/cli/compose/loader.isFilePath(0xc42027e058, 0x1, 0x557dcb978c20)
    ...

After this change, a correct error is returned:

    docker run -it --rm -v 1:/1 alpine
    docker: Error response from daemon: create 1: volume name is too short, names should be at least two alphanumeric characters.

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
(cherry picked from commit 11869fa42a)
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2020-04-28 11:58:25 +02:00
83d4cb9000 vendor: bump gopkg.in/yaml.v2 v2.2.8
full diff: https://github.com/go-yaml/yaml/compare/v2.2.3...v2.2.8

includes:

- go-yaml/yaml 515 Improve heuristics preventing CPU/memory abuse
- go-yaml/yaml@f90ceb4f40 Fix check for non-map alias merging in v2
    - fix for "yaml.Unmarshal crashes on "assignment to entry in nil map""
- go-yaml/yaml 543 Port stale simple_keys fix to v2
- go-yaml/yaml@1f64d6156d Fix issue in simple_keys improvements
    - fixes "Invalid simple_keys now cause panics later in decode"
- go-yaml/yaml 555 Optimize cases with long potential simple_keys

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
(cherry picked from commit 3dfcfbb2bf)
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2020-04-28 11:55:26 +02:00
0cfe29431c service update: fix service create example
Service create expects the name to be passed using the
`--name` flag, not as a positional parameter

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
(cherry picked from commit 0cd7c6aa02)
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2020-04-28 11:47:37 +02:00
2dc593f67f Add container_iface_prefix option to documentation
Signed-off-by: dominikbraun <braun@sternentstehung.de>
(cherry picked from commit 84a07a9977)
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2020-04-28 11:47:16 +02:00
d25e657341 Merge pull request #2445 from thaJeztah/19.03_backport_network_prune_improve_message
[19.03 backport] improve "network prune" output to mention custom networks only
2020-04-21 17:23:18 +02:00
8986e31201 Merge pull request #2456 from thaJeztah/19.03_backport_gotest_v3
[19.03 backport] bump gotest.tools v3.0.1 for compatibility with Go 1.14
2020-04-21 17:06:56 +02:00
4fe6b837b7 bump gotest.tools v3.0.1 for compatibility with Go 1.14
full diff: https://github.com/gotestyourself/gotest.tools/compare/v2.3.0...v3.0.1

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
(cherry picked from commit 2c0e93063b)
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2020-04-21 16:43:18 +02:00
a8454a4d92 update vndr v0.1.1
full diff: https://github.com/LK4D4/vndr/compare/v0.1.0...v0.1.1

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
(cherry picked from commit 7c54406951)
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2020-04-20 22:51:22 +02:00
950dcedd97 bump vndr v0.1.0 to support versioned import paths
With this change, go packages/modules that use versioned
import paths (github.com/foo/bar/v2), but don't use a directory
in the repository, can now be supported.

For example:

```
github.com/coreos/go-systemd/v22 v22.0.0
```

will vendor the github.com/coreos/go-systemd repository
into `vendor/github.com/coreos/go-systemd/v22`.

full diff: b177b583eb...v0.1.0

- LK4D4/vndr#79 Add more clear messages around clone failures
- LK4D4/vndr#80 add riscv64 support
- LK4D4/vndr#83 migrate bitbucket to api 2.0
    - fixes LK4D4/vndr#82 https://api.bitbucket.org/1.0/repositories/ww/goautoneg: 410 Gone
- LK4D4/vndr#86 Replace sort.Sort with sort.Strings
- LK4D4/vndr#87 support `github.com/coreos/go-systemd/v22`

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
(cherry picked from commit 7904c23df8)
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2020-04-20 22:51:20 +02:00
05ad944d13 Merge pull request #2453 from thaJeztah/19.03_backport_fixup_markdown_and_links
[19.03 backport] documentation changes
2020-04-20 14:01:29 +02:00
0d26cbf5b7 yamldocs: add description to base command
Currently the documentation uses a special case for this command,
so adding a description to the YAML in order to remove that
special case.

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
(cherry picked from commit c4798a9daa)
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2020-04-19 19:53:33 +02:00
d4e4fa3b46 experimental/vlan-networks: markdown touch-ups
- wrap to 80-chars
- reformat notes
- add code-hints to help highlighting

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
(cherry picked from commit 86257b0fc7)
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2020-04-19 19:43:09 +02:00
de12dbfb16 docs/reference: explain "colon"
Colon may not be something non-native English readers
know about, so explain the symbol in the running text.

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
(cherry picked from commit e34c407516)
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2020-04-19 19:42:57 +02:00
7ae77e51f2 docs/extend: reformat notes
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
(cherry picked from commit e4fc8cfa23)
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2020-04-19 19:42:49 +02:00
733ae82dae docs/builder: touch up markdown, and some minor rephrasing
- add code-fences with code-hints so that the right hightlighting is applied
- replace `*` for `-` in bullet-lists for consistency with other parts of the
  documentation.
- reduced number of "notes", either by combining some, or by changing some
  to regular text.
- removed "line numbers" from some examples, because there's only four lines,
  which should not need really need line numbers.
- reformat some notes to our new format

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
(cherry picked from commit 16730a2ab6)
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2020-04-19 19:42:38 +02:00
9a1ba7d39a docs/reference/run.md: touch-up markdown
- add code-fences with code-hints so that the right
  hightlighting is applied
- reduced number of "notes", either by combining some,
  or by changing some to regular text.
- use tables for some option lists

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
(cherry picked from commit b73df4a231)
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2020-04-19 19:41:54 +02:00
6ba9a3e4c9 reference docs: reformat notes
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
(cherry picked from commit 6ae5df423a)
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2020-04-19 19:41:52 +02:00
96eb0888fa reference docs: fix broken links and markdown touch-ups
- fix various broken links
- fix incorrect anchors
- updated links for content that moved, so that no
  redirect to the new location is needed.
- touched-up Markdown;
  - re-format some JSON output
  - add blank line betweeen command and command output
  - format "note" blocks

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
(cherry picked from commit 8919c228bd)
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2020-04-19 19:41:50 +02:00
2676c603fb Adding missing title in builder.md
addresses https://github.com/docker/docker.github.io/issues/9691

Signed-off-by: hsam <hfsam88@gmail.com>
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
(cherry picked from commit 7557c138d7)
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2020-04-19 19:41:48 +02:00
365bae4f89 Add clarification when using USER UID:GI
Signed-off-by: Michael Irwin <mikesir87@gmail.com>
(cherry picked from commit b3a1681fd8)
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2020-04-19 19:41:45 +02:00
04533bd523 Merge pull request #2442 from thaJeztah/19.03_backport_update_go_events
[19.03 backport] vendor: update go-events to fix alignment for 32bit systems
2020-04-15 10:55:12 +02:00
c38b260077 improve "network prune" output to mention custom networks only
The `docker network prune` command removes unused custom networks,
but built-in networks won't be removed. This patch updates the
message to mention that it's only removing custom networks.

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
(cherry picked from commit eb93a865ed)
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2020-04-15 10:54:57 +02:00
ba0a2ffe2a Merge pull request #2444 from thaJeztah/19.03_backport_host_gateway_validation
[19.03 backport] Skip IPAddr validation for "host-gateway" string
2020-04-15 10:53:02 +02:00
fd9eedce3c Add "host-gateway" to tests for extra_hosts / --add-host
67ebcd6dcf added an exception for
the "host-gateway" magic value to the validation rules, but didn't
add thise value to any of the tests.

This patch adds the magic value to tests, to verify the validation
is skipped for this magic value.

Note that validation on the client side is "optional" and mostly
done to provide a more user-friendly error message for regular
values (IP-addresses).

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
(cherry picked from commit f88ae74135)
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2020-04-15 09:53:37 +02:00
3651189826 Skip IPAddr validation for "host-gateway" string
Relates to - moby/moby 40007
The above PR added support in moby, that detects if
a special string "host-gateway" is added to the IP
section of --add-host, and if true, replaces it with
a special IP value (value of --host-gateway-ip Daemon flag
which defaults to the IP of the default bridge).

This PR is needed to skip the validation for the above
feature

Signed-off-by: Arko Dasgupta <arko.dasgupta@docker.com>
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
(cherry picked from commit 67ebcd6dcf)
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2020-04-15 09:36:14 +02:00
a0f0ed1f5f vendor: update go-events to fix alignment for 32bit systems
- relates to moby/buildkit 1111
- relates to moby/buildkit 1079
- relates to docker/buildx 129

full diff: 9461782956...e31b211e4f

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
(cherry picked from commit 5661cc0de5)
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2020-04-14 13:53:44 +02:00
173c85ad75 Merge pull request #2431 from thaJeztah/19.03_backport_bump_golang_1.13.10
[19.03 backport] Bump Golang 1.13.10
2020-04-10 23:55:43 +02:00
de6a5fa447 Bump Golang 1.13.10
go1.13.10 (released 2020/04/08) includes fixes to the go command, the runtime,
os/exec, and time packages. See the Go 1.13.10 milestone on the issue tracker
for details:

https://github.com/golang/go/issues?q=milestone%3AGo1.13.10+label%3ACherryPickApproved

full diff: https://github.com/golang/go/compare/go1.13.9...go1.13.10

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
(cherry picked from commit 6875390131)
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2020-04-10 22:37:09 +02:00
1a4749b8e7 Merge pull request #2435 from thaJeztah/19.03_backport_bump_certificates
[19.03 backport] CI: update notary test certificates
2020-04-10 12:59:09 -07:00
19ccd4f5d4 CI: update notary test certificates
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
(cherry picked from commit 6bd09229a5)
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2020-04-10 16:44:18 +02:00
d7f5f70c39 Merge pull request #2419 from thaJeztah/19.03_backport_bump_golang_1.13.9
[19.03 backport] Bump Golang 1.13.9
2020-04-06 16:20:22 +02:00
f8fc68f174 Bump Golang 1.13.9
go1.13.9 (released 2020/03/19) includes fixes to the go command, tools, the
runtime, the toolchain, and the crypto/cypher package. See the Go 1.13.9
milestone on the issue tracker for details:

https://github.com/golang/go/issues?q=milestone%3AGo1.13.9+label%3ACherryPickApproved

full diff: https://github.com/golang/go/compare/go1.13.8...go1.13.9

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
(cherry picked from commit d063b835b3)
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2020-04-06 16:02:03 +02:00
7d48500057 Merge pull request #2403 from thaJeztah/19.03_backport_update_deprecation_policy
[19.03 backport] Update deprecation policy to 1 stable release
2020-03-20 16:22:40 +01:00
22cbf91618 Update deprecation policy to 1 stable release
The deprecation policy was written when we had monthly releases
(edge+stable), and stable releases were released every 3 months.

The release cadence has changed to be longer than 3 months for
stable releases, so adjusting the policy accordingly.

Note that the policy continues to be "at least x releases", so
even though we _can_ remove a feature after one release, it does
not mean we _must_ remove it: announcing deprecations early helps
users migrate away from features we do not intent to support in
future.

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
(cherry picked from commit 94f513e48e)
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2020-03-20 13:07:39 +01:00
0b0ea3f0fa Merge pull request #2401 from thaJeztah/19.03_backport_deprecation_policy
[19.03 backport] Include deprecation policy on deprecated features page
2020-03-20 11:50:53 +01:00
288cdec291 Include deprecation policy on deprecated features page
This section was included on a page on docs.docker.com, but not linked
in the navigation. Putting the section on the deprecated features page
to be sure they can be found together.

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
(cherry picked from commit 99443274b1)
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2020-03-20 11:04:34 +01:00
a4d902af53 Merge pull request #2399 from thaJeztah/19.03_backport_remove_comments
[19.03 backport] remove unneeded comment from reference files
2020-03-19 20:09:48 +01:00
ffffc1ed49 remove unneeded comment from reference files
these markdown files are not consumed directly in the docs,
but only their content is included through the YAML does,
so there's no need to have these comments in them

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
(cherry picked from commit f30bde6adb)
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2020-03-19 15:26:30 +01:00
bf1f5fcfb3 Merge pull request #2393 from thaJeztah/19.03_backport_codehints_compatibility
[19.03 backport] docs: update code-hints for compatibility with "rouge"
2020-03-17 16:52:40 +01:00
c35400655d Merge pull request #2391 from thaJeztah/19.03_backport_fix_yamldocs
[19.03 backport] Fix yamldocs generator to accomodate nested subcommands
2020-03-17 16:50:45 +01:00
9fd323afdc Fix whitespace that caused short-format in generated YAML
If the markdown contains trailing spaces, or has tabs included,
the YAML generator uses a compact format for the text (using `\n`
and `\t`, instead of plain newlines).

The compact format makes it difficult to review changes in the
yaml docs when vendoring in the documentation repository.

This patch:

- removes trailing whitespace
- replaces tabs for spaces
- fixes some minor formatting and markdown issues

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
(cherry picked from commit f912deeec7)
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2020-03-17 16:42:19 +01:00
c936ea9693 Fix yamldocs generator to accomodate nested subcommands
The script was written to only take subcommands at the first and second level
into account, but failed to find the Markdown files for extended descriptions of
subcommands at the third level, such as `docker trust key generate`, and
`docker trust key load`:

    WARN: /go/src/github.com/docker/cli/docs/reference/commandline/key_generate.md does not exist, skipping
    WARN: /go/src/github.com/docker/cli/docs/reference/commandline/key_load.md does not exist, skipping
    WARN: /go/src/github.com/docker/cli/docs/reference/commandline/signer_add.md does not exist, skipping
    WARN: /go/src/github.com/docker/cli/docs/reference/commandline/signer_remove.md does not exist, skipping

This patch updates the script to accomodate subcommands that are more deeply
nested. While at it, some minor cleaning and linting issues were also addressed.

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
(cherry picked from commit e1b362847f)
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2020-03-17 16:42:17 +01:00
d484456c29 Fix naming of reference docs files
These files were intended to document the `swarm join-token` and
`swarm unlock-key` subcommands, but were incorrectly using an underscore
instead of a hyphen (`-`). As a result, the examples were not picked up
by the yamldocs generator.

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
(cherry picked from commit 5115bfa041)
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2020-03-17 16:42:15 +01:00
6a02465f4c docs: update code-hints for compatibility with "rouge"
Unlike GitHub's web-UI, the "rouge" hightlighter used in our
online documentation is case-sensitive. As a result, code-blocks
having the Dockerfile (uppercase) code-hint were not highlighted.

This changes those to use lowercase, which is supported by both.

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
(cherry picked from commit 824a9ce64b)
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2020-03-17 15:04:51 +01:00
f53663a951 Merge pull request #2364 from thaJeztah/19.03_backport_bump_golang_1.13
[19.03 backport] Update Golang 1.13.8
2020-03-12 18:00:04 +01:00
eb310fca49 Merge pull request #2373 from tiborvass/19.03-bump-grpc-1.23.1
[19.03 backport] Bump grpc to v1.23.1
2020-03-03 22:59:52 +01:00
0e40b91921 vendor: bump google.golang.org/grpc v1.23.1
full diff: https://github.com/grpc/grpc-go/compare/v1.23.0...v1.23.1

- grpc/grpc-go#3018 server: set and advertise max frame size of 16KB
- grpc/grpc-go#3017 grpclb: fix deadlock in grpclb connection cache
    - Before the fix, if the timer to remove a SubConn fires at the
      same time NewSubConn cancels the timer, it caused a mutex leak
      and deadlock.

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
(cherry picked from commit 013151ff78)
Signed-off-by: Tibor Vass <tibor@docker.com>
2020-03-03 21:39:18 +00:00
a51e9e6397 vendor: update grpc to v1.23.0
Signed-off-by: Tibor Vass <tibor@docker.com>
(cherry picked from commit 70a4eb2a49)
Signed-off-by: Tibor Vass <tibor@docker.com>
2020-03-03 21:39:13 +00:00
6e07d210a4 Update Golang 1.13.8
Also pinning the e2e image to the "buster" variant,
which is what's currently used, but making it explicit.

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
(cherry picked from commit 4313c8b3c6)
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2020-02-27 17:52:57 +01:00
3ff19c3755 Merge pull request #2352 from thaJeztah/19.03_backport_add_daemon_redirect
[19.03 backport] docs: add redirect for old location of daemon reference
2020-02-26 17:18:59 +01:00
e94a87225a docs: add redirect for old location of daemon reference
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
(cherry picked from commit 4cd4305b31)
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2020-02-26 16:35:08 +01:00
7c803f7c34 Merge pull request #2344 from thaJeztah/19.03_backport_builder_prune_flags
[19.03 backport] fix builder prune flag descriptions
2020-02-26 16:32:45 +01:00
4591b13318 Merge pull request #2342 from thaJeztah/19.03_backport_bump_golang_1.12.17
[19.03 backport] Update Golang 1.12.17
2020-02-19 11:48:11 +01:00
f9a5c1f152 Fix builder prune -a/--all flag description
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
(cherry picked from commit aad9d2c958)
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2020-02-18 14:33:42 +01:00
829843333b unused-for is a deprecated synonym
See 9e7d5ac5ea/builder/builder-next/builder.go (L574)

Signed-off-by: Samuel Cochran <sj26@sj26.com>
(cherry picked from commit 758d12e651)
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2020-02-18 14:33:28 +01:00
f0e74408cf Update Golang 1.12.17
full diff: https://github.com/golang/go/compare/go1.12.16...go1.12.17

go1.12.17 (released 2020/02/12) includes a fix to the runtime. See the Go 1.12.17
milestone on the issue tracker for details:

https://github.com/golang/go/issues?q=milestone%3AGo1.12.17+label%3ACherryPickApproved

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
(cherry picked from commit 5e5ef9e0b9)
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2020-02-17 14:58:54 +01:00
577 changed files with 31167 additions and 7275 deletions

View File

@ -4,13 +4,13 @@ jobs:
lint:
working_directory: /work
docker: [{image: 'docker:18.09-git'}]
docker: [{image: 'docker:19.03-git'}]
environment:
DOCKER_BUILDKIT: 1
steps:
- checkout
- setup_remote_docker:
version: 18.09.3
version: 19.03.8
reusable: true
exclusive: false
- run:
@ -39,14 +39,14 @@ jobs:
cross:
working_directory: /work
docker: [{image: 'docker:18.09-git'}]
docker: [{image: 'docker:19.03-git'}]
environment:
DOCKER_BUILDKIT: 1
parallelism: 3
steps:
- checkout
- setup_remote_docker:
version: 18.09.3
version: 19.03.8
reusable: true
exclusive: false
- run:
@ -75,13 +75,13 @@ jobs:
test:
working_directory: /work
docker: [{image: 'docker:18.09-git'}]
docker: [{image: 'docker:19.03-git'}]
environment:
DOCKER_BUILDKIT: 1
steps:
- checkout
- setup_remote_docker:
version: 18.09.3
version: 19.03.8
reusable: true
exclusive: false
- run:
@ -122,13 +122,13 @@ jobs:
validate:
working_directory: /work
docker: [{image: 'docker:18.09-git'}]
docker: [{image: 'docker:19.03-git'}]
environment:
DOCKER_BUILDKIT: 1
steps:
- checkout
- setup_remote_docker:
version: 18.09.3
version: 19.03.8
reusable: true
exclusive: false
- run:

56
Jenkinsfile vendored
View File

@ -1,13 +1,47 @@
wrappedNode(label: 'linux && x86_64', cleanWorkspace: true) {
timeout(time: 60, unit: 'MINUTES') {
stage "Git Checkout"
checkout scm
pipeline {
agent {
label "linux && x86_64"
}
stage "Run end-to-end test suite"
sh "docker version"
sh "docker info"
sh "E2E_UNIQUE_ID=clie2e${BUILD_NUMBER} \
IMAGE_TAG=clie2e${BUILD_NUMBER} \
DOCKER_BUILDKIT=1 make -f docker.Makefile test-e2e"
}
options {
timeout(time: 60, unit: 'MINUTES')
}
stages {
stage("Docker info") {
steps {
sh "docker version"
sh "docker info"
}
}
stage("e2e (non-experimental) - stable engine") {
steps {
sh "E2E_UNIQUE_ID=clie2e${BUILD_NUMBER} \
IMAGE_TAG=clie2e${BUILD_NUMBER} \
DOCKER_BUILDKIT=1 make -f docker.Makefile test-e2e-non-experimental"
}
}
stage("e2e (non-experimental) - 18.09 engine") {
steps {
sh "E2E_ENGINE_VERSION=18.09-dind \
E2E_UNIQUE_ID=clie2e${BUILD_NUMBER} \
IMAGE_TAG=clie2e${BUILD_NUMBER} \
DOCKER_BUILDKIT=1 make -f docker.Makefile test-e2e-non-experimental"
}
}
stage("e2e (experimental)") {
steps {
sh "E2E_UNIQUE_ID=clie2e${BUILD_NUMBER} \
IMAGE_TAG=clie2e${BUILD_NUMBER} \
DOCKER_BUILDKIT=1 make -f docker.Makefile test-e2e-experimental"
}
}
stage("e2e (ssh connhelper)") {
steps {
sh "E2E_UNIQUE_ID=clie2e${BUILD_NUMBER} \
IMAGE_TAG=clie2e${BUILD_NUMBER} \
DOCKER_BUILDKIT=1 make -f docker.Makefile test-e2e-connhelper-ssh"
}
}
}
}

View File

@ -4,7 +4,7 @@ clone_folder: c:\gopath\src\github.com\docker\cli
environment:
GOPATH: c:\gopath
GOVERSION: 1.12.16
GOVERSION: 1.13.15
DEPVERSION: v0.4.1
install:

View File

@ -7,8 +7,8 @@ import (
"testing"
"github.com/spf13/cobra"
"gotest.tools/assert"
"gotest.tools/assert/cmp"
"gotest.tools/v3/assert"
"gotest.tools/v3/assert/cmp"
)
type fakeCandidate struct {

View File

@ -25,6 +25,11 @@ func (e *pluginError) Cause() error {
return e.cause
}
// Unwrap provides compatibility for Go 1.13 error chains.
func (e *pluginError) Unwrap() error {
return e.cause
}
// MarshalText marshalls the pluginError into a textual form.
func (e *pluginError) MarshalText() (text []byte, err error) {
return []byte(e.cause.Error()), nil

View File

@ -6,7 +6,7 @@ import (
"github.com/pkg/errors"
"gopkg.in/yaml.v2"
"gotest.tools/assert"
"gotest.tools/v3/assert"
)
func TestPluginError(t *testing.T) {
@ -16,7 +16,7 @@ func TestPluginError(t *testing.T) {
inner := fmt.Errorf("testing")
err = wrapAsPluginError(inner, "wrapping")
assert.Error(t, err, "wrapping: testing")
assert.Equal(t, inner, errors.Cause(err))
assert.Assert(t, errors.Is(err, inner))
actual, err := yaml.Marshal(err)
assert.NilError(t, err)

View File

@ -7,8 +7,8 @@ import (
"github.com/docker/cli/cli/config"
"github.com/docker/cli/cli/config/configfile"
"github.com/docker/cli/internal/test"
"gotest.tools/assert"
"gotest.tools/fs"
"gotest.tools/v3/assert"
"gotest.tools/v3/fs"
)
func TestListPluginCandidates(t *testing.T) {

View File

@ -6,8 +6,8 @@ import (
pluginmanager "github.com/docker/cli/cli-plugins/manager"
"github.com/google/go-cmp/cmp/cmpopts"
"github.com/spf13/cobra"
"gotest.tools/assert"
is "gotest.tools/assert/cmp"
"gotest.tools/v3/assert"
is "gotest.tools/v3/assert/cmp"
)
func TestVisitAll(t *testing.T) {

View File

@ -44,8 +44,8 @@ func NewPruneCommand(dockerCli command.Cli) *cobra.Command {
flags := cmd.Flags()
flags.BoolVarP(&options.force, "force", "f", false, "Do not prompt for confirmation")
flags.BoolVarP(&options.all, "all", "a", false, "Remove all unused images, not just dangling ones")
flags.Var(&options.filter, "filter", "Provide filter values (e.g. 'unused-for=24h')")
flags.BoolVarP(&options.all, "all", "a", false, "Remove all unused build cache, not just dangling ones")
flags.Var(&options.filter, "filter", "Provide filter values (e.g. 'until=24h')")
flags.Var(&options.keepStorage, "keep-storage", "Amount of disk space to keep for cache")
return cmd

View File

@ -5,8 +5,8 @@ import (
"strings"
"testing"
"gotest.tools/assert"
is "gotest.tools/assert/cmp"
"gotest.tools/v3/assert"
is "gotest.tools/v3/assert/cmp"
)
func TestLoadFileV01Success(t *testing.T) {

View File

@ -8,8 +8,8 @@ import (
"github.com/docker/cli/internal/test"
"github.com/docker/docker/api/types"
"github.com/pkg/errors"
"gotest.tools/assert"
is "gotest.tools/assert/cmp"
"gotest.tools/v3/assert"
is "gotest.tools/v3/assert/cmp"
)
func TestCheckpointCreateErrors(t *testing.T) {

View File

@ -6,7 +6,7 @@ import (
"github.com/docker/cli/cli/command/formatter"
"github.com/docker/docker/api/types"
"gotest.tools/assert"
"gotest.tools/v3/assert"
)
func TestCheckpointContextFormatWrite(t *testing.T) {

View File

@ -7,9 +7,9 @@ import (
"github.com/docker/cli/internal/test"
"github.com/docker/docker/api/types"
"github.com/pkg/errors"
"gotest.tools/assert"
is "gotest.tools/assert/cmp"
"gotest.tools/golden"
"gotest.tools/v3/assert"
is "gotest.tools/v3/assert/cmp"
"gotest.tools/v3/golden"
)
func TestCheckpointListErrors(t *testing.T) {

View File

@ -7,8 +7,8 @@ import (
"github.com/docker/cli/internal/test"
"github.com/docker/docker/api/types"
"github.com/pkg/errors"
"gotest.tools/assert"
is "gotest.tools/assert/cmp"
"gotest.tools/v3/assert"
is "gotest.tools/v3/assert/cmp"
)
func TestCheckpointRemoveErrors(t *testing.T) {

View File

@ -8,6 +8,8 @@ import (
"path/filepath"
"runtime"
"strconv"
"strings"
"time"
"github.com/docker/cli/cli/config"
cliconfig "github.com/docker/cli/cli/config"
@ -25,6 +27,7 @@ import (
"github.com/docker/cli/internal/containerizedengine"
dopts "github.com/docker/cli/opts"
clitypes "github.com/docker/cli/types"
"github.com/docker/docker/api"
"github.com/docker/docker/api/types"
registrytypes "github.com/docker/docker/api/types/registry"
"github.com/docker/docker/client"
@ -76,7 +79,7 @@ type DockerCli struct {
err io.Writer
client client.APIClient
serverInfo ServerInfo
clientInfo ClientInfo
clientInfo *ClientInfo
contentTrust bool
newContainerizeClient func(string) (clitypes.ContainerizedClient, error)
contextStore store.Store
@ -87,7 +90,7 @@ type DockerCli struct {
// DefaultVersion returns api.defaultVersion or DOCKER_API_VERSION if specified.
func (cli *DockerCli) DefaultVersion() string {
return cli.clientInfo.DefaultVersion
return cli.ClientInfo().DefaultVersion
}
// Client returns the APIClient
@ -126,9 +129,16 @@ func ShowHelp(err io.Writer) func(*cobra.Command, []string) error {
// ConfigFile returns the ConfigFile
func (cli *DockerCli) ConfigFile() *configfile.ConfigFile {
if cli.configFile == nil {
cli.loadConfigFile()
}
return cli.configFile
}
func (cli *DockerCli) loadConfigFile() {
cli.configFile = cliconfig.LoadDefaultConfigFile(cli.err)
}
// ServerInfo returns the server version details for the host this client is
// connected to
func (cli *DockerCli) ServerInfo() ServerInfo {
@ -137,7 +147,36 @@ func (cli *DockerCli) ServerInfo() ServerInfo {
// ClientInfo returns the client details for the cli
func (cli *DockerCli) ClientInfo() ClientInfo {
return cli.clientInfo
if cli.clientInfo == nil {
if err := cli.loadClientInfo(); err != nil {
panic(err)
}
}
return *cli.clientInfo
}
func (cli *DockerCli) loadClientInfo() error {
var experimentalValue string
// Environment variable always overrides configuration
if experimentalValue = os.Getenv("DOCKER_CLI_EXPERIMENTAL"); experimentalValue == "" {
experimentalValue = cli.ConfigFile().Experimental
}
hasExperimental, err := isEnabled(experimentalValue)
if err != nil {
return errors.Wrap(err, "Experimental field")
}
var v string
if cli.client != nil {
v = cli.client.ClientVersion()
} else {
v = api.DefaultVersion
}
cli.clientInfo = &ClientInfo{
DefaultVersion: v,
HasExperimental: hasExperimental,
}
return nil
}
// ContentTrustEnabled returns whether content trust has been enabled by an
@ -207,7 +246,7 @@ func (cli *DockerCli) Initialize(opts *cliflags.ClientOptions, ops ...Initialize
debug.Enable()
}
cli.configFile = cliconfig.LoadDefaultConfigFile(cli.err)
cli.loadConfigFile()
baseContextStore := store.New(cliconfig.ContextStoreDir(), cli.contextStoreConfig)
cli.contextStore = &ContextStoreWithDefault{
@ -239,20 +278,12 @@ func (cli *DockerCli) Initialize(opts *cliflags.ClientOptions, ops ...Initialize
return err
}
}
var experimentalValue string
// Environment variable always overrides configuration
if experimentalValue = os.Getenv("DOCKER_CLI_EXPERIMENTAL"); experimentalValue == "" {
experimentalValue = cli.configFile.Experimental
}
hasExperimental, err := isEnabled(experimentalValue)
if err != nil {
return errors.Wrap(err, "Experimental field")
}
cli.clientInfo = ClientInfo{
DefaultVersion: cli.client.ClientVersion(),
HasExperimental: hasExperimental,
}
cli.initializeFromClient()
if err := cli.loadClientInfo(); err != nil {
return err
}
return nil
}
@ -343,7 +374,16 @@ func isEnabled(value string) (bool, error) {
}
func (cli *DockerCli) initializeFromClient() {
ping, err := cli.client.Ping(context.Background())
ctx := context.Background()
if strings.HasPrefix(cli.DockerEndpoint().Host, "tcp://") {
// @FIXME context.WithTimeout doesn't work with connhelper / ssh connections
// time="2020-04-10T10:16:26Z" level=warning msg="commandConn.CloseWrite: commandconn: failed to wait: signal: killed"
var cancel func()
ctx, cancel = context.WithTimeout(ctx, 2*time.Second)
defer cancel()
}
ping, err := cli.client.Ping(ctx)
if err != nil {
// Default to true if we fail to connect to daemon
cli.serverInfo = ServerInfo{HasExperimental: true}

View File

@ -4,7 +4,7 @@ import (
"os"
"testing"
"gotest.tools/assert"
"gotest.tools/v3/assert"
)
func contentTrustEnabled(t *testing.T) bool {

View File

@ -19,10 +19,10 @@ import (
"github.com/docker/docker/api/types"
"github.com/docker/docker/client"
"github.com/pkg/errors"
"gotest.tools/assert"
is "gotest.tools/assert/cmp"
"gotest.tools/env"
"gotest.tools/fs"
"gotest.tools/v3/assert"
is "gotest.tools/v3/assert/cmp"
"gotest.tools/v3/env"
"gotest.tools/v3/fs"
)
func TestNewAPIClientFromFlags(t *testing.T) {

View File

@ -11,9 +11,9 @@ import (
"github.com/docker/docker/api/types"
"github.com/docker/docker/api/types/swarm"
"github.com/pkg/errors"
"gotest.tools/assert"
is "gotest.tools/assert/cmp"
"gotest.tools/golden"
"gotest.tools/v3/assert"
is "gotest.tools/v3/assert/cmp"
"gotest.tools/v3/golden"
)
const configDataFile = "config-create-with-name.golden"

View File

@ -7,8 +7,8 @@ import (
"github.com/docker/cli/cli/command/formatter"
"github.com/docker/docker/api/types/swarm"
"gotest.tools/assert"
is "gotest.tools/assert/cmp"
"gotest.tools/v3/assert"
is "gotest.tools/v3/assert/cmp"
)
func TestConfigContextFormatWrite(t *testing.T) {

View File

@ -10,8 +10,8 @@ import (
. "github.com/docker/cli/internal/test/builders" // Import builders to get the builder function as package function
"github.com/docker/docker/api/types/swarm"
"github.com/pkg/errors"
"gotest.tools/assert"
"gotest.tools/golden"
"gotest.tools/v3/assert"
"gotest.tools/v3/golden"
)
func TestConfigInspectErrors(t *testing.T) {

View File

@ -9,8 +9,8 @@ import (
"github.com/docker/cli/cli/command/formatter"
"github.com/docker/cli/opts"
"github.com/docker/docker/api/types"
"github.com/fvbommel/sortorder"
"github.com/spf13/cobra"
"vbom.ml/util/sortorder"
)
// ListOptions contains options for the docker config ls command.

View File

@ -11,9 +11,9 @@ import (
"github.com/docker/docker/api/types"
"github.com/docker/docker/api/types/swarm"
"github.com/pkg/errors"
"gotest.tools/assert"
is "gotest.tools/assert/cmp"
"gotest.tools/golden"
"gotest.tools/v3/assert"
is "gotest.tools/v3/assert/cmp"
"gotest.tools/v3/golden"
)
func TestConfigListErrors(t *testing.T) {

View File

@ -7,8 +7,8 @@ import (
"github.com/docker/cli/internal/test"
"github.com/pkg/errors"
"gotest.tools/assert"
is "gotest.tools/assert/cmp"
"gotest.tools/v3/assert"
is "gotest.tools/v3/assert/cmp"
)
func TestConfigRemoveErrors(t *testing.T) {

View File

@ -10,7 +10,7 @@ import (
"github.com/docker/docker/api/types"
"github.com/docker/docker/api/types/container"
"github.com/pkg/errors"
"gotest.tools/assert"
"gotest.tools/v3/assert"
)
func TestNewAttachCommandErrors(t *testing.T) {

View File

@ -11,10 +11,10 @@ import (
"github.com/docker/cli/internal/test"
"github.com/docker/docker/api/types"
"github.com/docker/docker/pkg/archive"
"gotest.tools/assert"
is "gotest.tools/assert/cmp"
"gotest.tools/fs"
"gotest.tools/skip"
"gotest.tools/v3/assert"
is "gotest.tools/v3/assert/cmp"
"gotest.tools/v3/fs"
"gotest.tools/v3/skip"
)
func TestRunCopyWithInvalidArguments(t *testing.T) {

View File

@ -19,10 +19,10 @@ import (
"github.com/docker/docker/api/types/network"
"github.com/google/go-cmp/cmp"
"github.com/pkg/errors"
"gotest.tools/assert"
is "gotest.tools/assert/cmp"
"gotest.tools/fs"
"gotest.tools/golden"
"gotest.tools/v3/assert"
is "gotest.tools/v3/assert/cmp"
"gotest.tools/v3/fs"
"gotest.tools/v3/golden"
)
func TestCIDFileNoOPWithNoFilename(t *testing.T) {

View File

@ -11,8 +11,8 @@ import (
"github.com/docker/cli/opts"
"github.com/docker/docker/api/types"
"github.com/pkg/errors"
"gotest.tools/assert"
is "gotest.tools/assert/cmp"
"gotest.tools/v3/assert"
is "gotest.tools/v3/assert/cmp"
)
func withDefaultOpts(options execOptions) execOptions {

View File

@ -7,8 +7,8 @@ import (
"testing"
"github.com/docker/cli/internal/test"
"gotest.tools/assert"
"gotest.tools/fs"
"gotest.tools/v3/assert"
"gotest.tools/v3/fs"
)
func TestContainerExportOutputToFile(t *testing.T) {

View File

@ -7,8 +7,8 @@ import (
"github.com/docker/cli/cli/command/formatter"
"github.com/docker/docker/api/types/container"
"github.com/docker/docker/pkg/archive"
"gotest.tools/assert"
is "gotest.tools/assert/cmp"
"gotest.tools/v3/assert"
is "gotest.tools/v3/assert/cmp"
)
func TestDiffContextFormatWrite(t *testing.T) {

View File

@ -6,8 +6,8 @@ import (
"github.com/docker/cli/cli/command/formatter"
"github.com/docker/docker/pkg/stringid"
"gotest.tools/assert"
is "gotest.tools/assert/cmp"
"gotest.tools/v3/assert"
is "gotest.tools/v3/assert/cmp"
)
func TestContainerStatsContext(t *testing.T) {

View File

@ -9,8 +9,8 @@ import (
"github.com/docker/cli/internal/test"
. "github.com/docker/cli/internal/test/builders" // Import builders to get the builder function as package function
"github.com/docker/docker/api/types"
"gotest.tools/assert"
"gotest.tools/golden"
"gotest.tools/v3/assert"
"gotest.tools/v3/golden"
)
func TestContainerListErrors(t *testing.T) {

View File

@ -9,8 +9,8 @@ import (
"github.com/docker/cli/internal/test"
"github.com/docker/docker/api/types"
"github.com/docker/docker/api/types/container"
"gotest.tools/assert"
is "gotest.tools/assert/cmp"
"gotest.tools/v3/assert"
is "gotest.tools/v3/assert/cmp"
)
var logFn = func(expectedOut string) func(string, types.ContainerLogsOptions) (io.ReadCloser, error) {

View File

@ -14,9 +14,9 @@ import (
"github.com/docker/go-connections/nat"
"github.com/pkg/errors"
"github.com/spf13/pflag"
"gotest.tools/assert"
is "gotest.tools/assert/cmp"
"gotest.tools/skip"
"gotest.tools/v3/assert"
is "gotest.tools/v3/assert/cmp"
"gotest.tools/v3/skip"
)
func TestValidateAttach(t *testing.T) {

View File

@ -4,8 +4,8 @@ import (
"testing"
"github.com/docker/cli/opts"
"gotest.tools/assert"
is "gotest.tools/assert/cmp"
"gotest.tools/v3/assert"
is "gotest.tools/v3/assert/cmp"
)
func TestBuildContainerListOptions(t *testing.T) {

View File

@ -4,7 +4,6 @@ import (
"context"
"fmt"
"io"
"os"
"runtime"
"strings"
"syscall"
@ -280,9 +279,9 @@ func attachContainer(
func reportError(stderr io.Writer, name string, str string, withHelp bool) {
str = strings.TrimSuffix(str, ".") + "."
if withHelp {
str += "\nSee '" + os.Args[0] + " " + name + " --help'."
str += "\nSee 'docker " + name + " --help'."
}
fmt.Fprintf(stderr, "%s: %s\n", os.Args[0], str)
fmt.Fprintln(stderr, "docker:", str)
}
// if container start fails with 'not found'/'no such' error, return 127

View File

@ -9,8 +9,8 @@ import (
"github.com/docker/cli/internal/test/notary"
"github.com/docker/docker/api/types/container"
"github.com/docker/docker/api/types/network"
"gotest.tools/assert"
is "gotest.tools/assert/cmp"
"gotest.tools/v3/assert"
is "gotest.tools/v3/assert/cmp"
)
func TestRunLabel(t *testing.T) {

View File

@ -5,7 +5,7 @@ import (
"testing"
"github.com/docker/docker/api/types"
"gotest.tools/assert"
"gotest.tools/v3/assert"
)
func TestCalculateMemUsageUnixNoCache(t *testing.T) {

View File

@ -9,8 +9,8 @@ import (
"github.com/docker/cli/internal/test"
"github.com/docker/docker/api/types"
"github.com/pkg/errors"
"gotest.tools/assert"
is "gotest.tools/assert/cmp"
"gotest.tools/v3/assert"
is "gotest.tools/v3/assert/cmp"
)
func TestInitTtySizeErrors(t *testing.T) {

View File

@ -9,8 +9,8 @@ import (
"github.com/docker/docker/api"
"github.com/docker/docker/api/types/container"
"github.com/pkg/errors"
"gotest.tools/assert"
is "gotest.tools/assert/cmp"
"gotest.tools/v3/assert"
is "gotest.tools/v3/assert/cmp"
)
func waitFn(cid string) (<-chan container.ContainerWaitOKBody, <-chan error) {

View File

@ -1,6 +1,7 @@
package command
import (
"encoding/json"
"errors"
"github.com/docker/cli/cli/context/store"
@ -8,8 +9,48 @@ import (
// DockerContext is a typed representation of what we put in Context metadata
type DockerContext struct {
Description string `json:",omitempty"`
StackOrchestrator Orchestrator `json:",omitempty"`
Description string
StackOrchestrator Orchestrator
AdditionalFields map[string]interface{}
}
// MarshalJSON implements custom JSON marshalling
func (dc DockerContext) MarshalJSON() ([]byte, error) {
s := map[string]interface{}{}
if dc.Description != "" {
s["Description"] = dc.Description
}
if dc.StackOrchestrator != "" {
s["StackOrchestrator"] = dc.StackOrchestrator
}
if dc.AdditionalFields != nil {
for k, v := range dc.AdditionalFields {
s[k] = v
}
}
return json.Marshal(s)
}
// UnmarshalJSON implements custom JSON marshalling
func (dc *DockerContext) UnmarshalJSON(payload []byte) error {
var data map[string]interface{}
if err := json.Unmarshal(payload, &data); err != nil {
return err
}
for k, v := range data {
switch k {
case "Description":
dc.Description = v.(string)
case "StackOrchestrator":
dc.StackOrchestrator = Orchestrator(v.(string))
default:
if dc.AdditionalFields == nil {
dc.AdditionalFields = make(map[string]interface{})
}
dc.AdditionalFields[k] = v
}
}
return nil
}
// GetDockerContext extracts metadata from stored context metadata

View File

@ -12,8 +12,8 @@ import (
"github.com/docker/cli/cli/context/kubernetes"
"github.com/docker/cli/cli/context/store"
"github.com/docker/cli/internal/test"
"gotest.tools/assert"
"gotest.tools/env"
"gotest.tools/v3/assert"
"gotest.tools/v3/env"
)
func makeFakeCli(t *testing.T, opts ...func(*test.FakeCli)) (*test.FakeCli, func()) {

View File

@ -9,7 +9,7 @@ import (
"testing"
"github.com/docker/cli/cli/streams"
"gotest.tools/assert"
"gotest.tools/v3/assert"
)
func TestExportImportWithFile(t *testing.T) {

View File

@ -4,8 +4,8 @@ import (
"strings"
"testing"
"gotest.tools/assert"
"gotest.tools/golden"
"gotest.tools/v3/assert"
"gotest.tools/v3/golden"
)
func TestInspect(t *testing.T) {

View File

@ -10,8 +10,8 @@ import (
"github.com/docker/cli/cli/command/formatter"
"github.com/docker/cli/cli/context/docker"
kubecontext "github.com/docker/cli/cli/context/kubernetes"
"github.com/fvbommel/sortorder"
"github.com/spf13/cobra"
"vbom.ml/util/sortorder"
)
type listOptions struct {

View File

@ -4,9 +4,9 @@ import (
"testing"
"github.com/docker/cli/cli/command"
"gotest.tools/assert"
"gotest.tools/env"
"gotest.tools/golden"
"gotest.tools/v3/assert"
"gotest.tools/v3/env"
"gotest.tools/v3/golden"
)
func createTestContextWithKubeAndSwarm(t *testing.T, cli command.Cli, name string, orchestrator string) {

View File

@ -9,7 +9,7 @@ import (
"github.com/docker/cli/cli/config"
"github.com/docker/cli/cli/config/configfile"
"github.com/docker/cli/cli/context/store"
"gotest.tools/assert"
"gotest.tools/v3/assert"
)
func TestRemove(t *testing.T) {

View File

@ -6,8 +6,8 @@ import (
"github.com/docker/cli/cli/command"
"github.com/docker/cli/cli/context/docker"
"github.com/docker/cli/cli/context/kubernetes"
"gotest.tools/assert"
"gotest.tools/assert/cmp"
"gotest.tools/v3/assert"
"gotest.tools/v3/assert/cmp"
)
func TestUpdateDescriptionOnly(t *testing.T) {

View File

@ -9,7 +9,7 @@ import (
"github.com/docker/cli/cli/config"
"github.com/docker/cli/cli/config/configfile"
"github.com/docker/cli/cli/context/store"
"gotest.tools/assert"
"gotest.tools/v3/assert"
)
func TestUse(t *testing.T) {

View File

@ -0,0 +1,27 @@
package command
import (
"encoding/json"
"testing"
"gotest.tools/v3/assert"
)
func TestDockerContextMetadataKeepAdditionalFields(t *testing.T) {
c := DockerContext{
Description: "test",
StackOrchestrator: OrchestratorSwarm,
AdditionalFields: map[string]interface{}{
"foo": "bar",
},
}
jsonBytes, err := json.Marshal(c)
assert.NilError(t, err)
assert.Equal(t, `{"Description":"test","StackOrchestrator":"swarm","foo":"bar"}`, string(jsonBytes))
var c2 DockerContext
assert.NilError(t, json.Unmarshal(jsonBytes, &c2))
assert.Equal(t, c2.AdditionalFields["foo"], "bar")
assert.Equal(t, c2.StackOrchestrator, OrchestratorSwarm)
assert.Equal(t, c2.Description, "test")
}

View File

@ -11,9 +11,9 @@ import (
"github.com/docker/cli/cli/context/store"
cliflags "github.com/docker/cli/cli/flags"
"github.com/docker/go-connections/tlsconfig"
"gotest.tools/assert"
"gotest.tools/env"
"gotest.tools/golden"
"gotest.tools/v3/assert"
"gotest.tools/v3/env"
"gotest.tools/v3/golden"
)
type endpoint struct {

View File

@ -14,9 +14,9 @@ import (
"github.com/docker/docker/client"
"github.com/docker/licensing"
"github.com/docker/licensing/model"
"gotest.tools/assert"
"gotest.tools/fs"
"gotest.tools/golden"
"gotest.tools/v3/assert"
"gotest.tools/v3/fs"
"gotest.tools/v3/golden"
)
const (

View File

@ -12,8 +12,8 @@ import (
"github.com/docker/docker/api/types"
"github.com/docker/docker/client"
"github.com/opencontainers/go-digest"
"gotest.tools/assert"
"gotest.tools/golden"
"gotest.tools/v3/assert"
"gotest.tools/v3/golden"
)
var (

View File

@ -3,7 +3,7 @@ package engine
import (
"testing"
"gotest.tools/assert"
"gotest.tools/v3/assert"
)
func TestNewEngineCommand(t *testing.T) {

View File

@ -10,8 +10,8 @@ import (
"github.com/docker/cli/cli/command/formatter"
"github.com/docker/cli/internal/licenseutils"
"github.com/docker/licensing/model"
"gotest.tools/assert"
is "gotest.tools/assert/cmp"
"gotest.tools/v3/assert"
is "gotest.tools/v3/assert/cmp"
)
func TestSubscriptionContextWrite(t *testing.T) {

View File

@ -8,7 +8,7 @@ import (
clitypes "github.com/docker/cli/types"
"github.com/docker/docker/api/types"
"github.com/docker/docker/client"
"gotest.tools/assert"
"gotest.tools/v3/assert"
)
func TestUpdateNoContainerd(t *testing.T) {

View File

@ -8,8 +8,8 @@ import (
"github.com/docker/cli/cli/command/formatter"
clitypes "github.com/docker/cli/types"
"gotest.tools/assert"
is "gotest.tools/assert/cmp"
"gotest.tools/v3/assert"
is "gotest.tools/v3/assert/cmp"
)
func TestUpdateContextWrite(t *testing.T) {

View File

@ -10,9 +10,9 @@ import (
"github.com/docker/docker/api/types"
"github.com/docker/docker/pkg/stringid"
"gotest.tools/assert"
is "gotest.tools/assert/cmp"
"gotest.tools/golden"
"gotest.tools/v3/assert"
is "gotest.tools/v3/assert/cmp"
"gotest.tools/v3/golden"
)
func TestContainerPsContext(t *testing.T) {

View File

@ -4,9 +4,9 @@ import (
"bytes"
"testing"
"gotest.tools/assert"
is "gotest.tools/assert/cmp"
"gotest.tools/golden"
"gotest.tools/v3/assert"
is "gotest.tools/v3/assert/cmp"
"gotest.tools/v3/golden"
)
func TestDiskUsageContextFormatWrite(t *testing.T) {

View File

@ -3,8 +3,8 @@ package formatter
import (
"testing"
"gotest.tools/assert"
is "gotest.tools/assert/cmp"
"gotest.tools/v3/assert"
is "gotest.tools/v3/assert/cmp"
)
func TestEllipsis(t *testing.T) {

View File

@ -9,8 +9,8 @@ import (
"github.com/docker/docker/api/types"
"github.com/docker/docker/pkg/stringid"
"gotest.tools/assert"
is "gotest.tools/assert/cmp"
"gotest.tools/v3/assert"
is "gotest.tools/v3/assert/cmp"
)
func TestImageContext(t *testing.T) {

View File

@ -9,8 +9,8 @@ import (
"github.com/docker/docker/api/types"
"github.com/docker/docker/pkg/stringid"
"gotest.tools/assert"
is "gotest.tools/assert/cmp"
"gotest.tools/v3/assert"
is "gotest.tools/v3/assert/cmp"
)
func TestVolumeContext(t *testing.T) {

View File

@ -7,8 +7,8 @@ import (
. "github.com/docker/cli/internal/test/builders" // Import builders to get the builder function as package function
"github.com/docker/docker/api/types/swarm"
"github.com/pkg/errors"
"gotest.tools/assert"
is "gotest.tools/assert/cmp"
"gotest.tools/v3/assert"
is "gotest.tools/v3/assert/cmp"
)
func TestResolveError(t *testing.T) {

View File

@ -115,6 +115,25 @@ func NewBuildCommand(dockerCli command.Cli) *cobra.Command {
},
}
// Wrap the global pre-run to handle non-BuildKit use of the --platform flag.
//
// We're doing it here so that we're only contacting the daemon when actually
// running the command, and not during initialization.
// TODO remove this hack once we no longer support the experimental use of --platform
rootFn := cmd.Root().PersistentPreRunE
cmd.PersistentPreRunE = func(cmd *cobra.Command, args []string) error {
if ok, _ := command.BuildKitEnabled(dockerCli.ServerInfo()); !ok {
f := cmd.Flag("platform")
delete(f.Annotations, "buildkit")
f.Annotations["version"] = []string{"1.32"}
f.Annotations["experimental"] = nil
}
if rootFn != nil {
return rootFn(cmd, args)
}
return nil
}
flags := cmd.Flags()
flags.VarP(&options.tags, "tag", "t", "Name and optionally a tag in the 'name:tag' format")
@ -163,14 +182,8 @@ func NewBuildCommand(dockerCli command.Cli) *cobra.Command {
command.AddTrustVerificationFlags(flags, &options.untrusted, dockerCli.ContentTrustEnabled())
flags.StringVar(&options.platform, "platform", os.Getenv("DOCKER_DEFAULT_PLATFORM"), "Set platform if server is multi-platform capable")
// Platform is not experimental when BuildKit is used
buildkitEnabled, err := command.BuildKitEnabled(dockerCli.ServerInfo())
if err == nil && buildkitEnabled {
flags.SetAnnotation("platform", "version", []string{"1.38"})
} else {
flags.SetAnnotation("platform", "version", []string{"1.32"})
flags.SetAnnotation("platform", "experimental", nil)
}
flags.SetAnnotation("platform", "version", []string{"1.38"})
flags.SetAnnotation("platform", "buildkit", nil)
flags.BoolVar(&options.squash, "squash", false, "Squash newly built layers into a single new layer")
flags.SetAnnotation("squash", "experimental", nil)

View File

@ -13,8 +13,8 @@ import (
"github.com/docker/docker/pkg/archive"
"github.com/docker/docker/pkg/fileutils"
"gotest.tools/assert"
is "gotest.tools/assert/cmp"
"gotest.tools/v3/assert"
is "gotest.tools/v3/assert/cmp"
)
const dockerfileContents = "FROM busybox"

View File

@ -19,12 +19,14 @@ import (
"github.com/docker/docker/pkg/archive"
"github.com/google/go-cmp/cmp"
"github.com/moby/buildkit/session/secrets/secretsprovider"
"gotest.tools/assert"
"gotest.tools/fs"
"gotest.tools/skip"
"gotest.tools/v3/assert"
"gotest.tools/v3/env"
"gotest.tools/v3/fs"
"gotest.tools/v3/skip"
)
func TestRunBuildDockerfileFromStdinWithCompress(t *testing.T) {
defer env.Patch(t, "DOCKER_BUILDKIT", "0")()
buffer := new(bytes.Buffer)
fakeBuild := newFakeBuild()
fakeImageBuild := func(ctx context.Context, context io.Reader, options types.ImageBuildOptions) (types.ImageBuildResponse, error) {
@ -60,6 +62,7 @@ func TestRunBuildDockerfileFromStdinWithCompress(t *testing.T) {
}
func TestRunBuildResetsUidAndGidInContext(t *testing.T) {
defer env.Patch(t, "DOCKER_BUILDKIT", "0")()
skip.If(t, os.Getuid() != 0, "root is required to chown files")
fakeBuild := newFakeBuild()
cli := test.NewFakeCli(&fakeClient{imageBuildFunc: fakeBuild.build})
@ -90,6 +93,7 @@ func TestRunBuildResetsUidAndGidInContext(t *testing.T) {
}
func TestRunBuildDockerfileOutsideContext(t *testing.T) {
defer env.Patch(t, "DOCKER_BUILDKIT", "0")()
dir := fs.NewDir(t, t.Name(),
fs.WithFile("data", "data file"))
defer dir.Remove()
@ -122,7 +126,8 @@ COPY data /data
// TODO: test "context selection" logic directly when runBuild is refactored
// to support testing (ex: docker/cli#294)
func TestRunBuildFromGitHubSpecialCase(t *testing.T) {
cmd := NewBuildCommand(test.NewFakeCli(nil))
defer env.Patch(t, "DOCKER_BUILDKIT", "0")()
cmd := NewBuildCommand(test.NewFakeCli(&fakeClient{}))
// Clone a small repo that exists so git doesn't prompt for credentials
cmd.SetArgs([]string{"github.com/docker/for-win"})
cmd.SetOutput(ioutil.Discard)
@ -135,6 +140,7 @@ func TestRunBuildFromGitHubSpecialCase(t *testing.T) {
// starting with `github.com` takes precedence over the `github.com` special
// case.
func TestRunBuildFromLocalGitHubDir(t *testing.T) {
defer env.Patch(t, "DOCKER_BUILDKIT", "0")()
tmpDir, err := ioutil.TempDir("", "docker-build-from-local-dir-")
assert.NilError(t, err)
defer os.RemoveAll(tmpDir)
@ -154,6 +160,7 @@ func TestRunBuildFromLocalGitHubDir(t *testing.T) {
}
func TestRunBuildWithSymlinkedContext(t *testing.T) {
defer env.Patch(t, "DOCKER_BUILDKIT", "0")()
dockerfile := `
FROM alpine:3.6
RUN echo hello world

View File

@ -11,8 +11,8 @@ import (
"github.com/docker/cli/internal/test"
"github.com/docker/docker/api/types/image"
"github.com/docker/docker/pkg/stringid"
"gotest.tools/assert"
is "gotest.tools/assert/cmp"
"gotest.tools/v3/assert"
is "gotest.tools/v3/assert/cmp"
)
type historyCase struct {

View File

@ -9,9 +9,9 @@ import (
"github.com/docker/cli/internal/test"
"github.com/docker/docker/api/types/image"
"github.com/pkg/errors"
"gotest.tools/assert"
"gotest.tools/golden"
"gotest.tools/skip"
"gotest.tools/v3/assert"
"gotest.tools/v3/golden"
"gotest.tools/v3/skip"
)
func TestNewHistoryCommandErrors(t *testing.T) {

View File

@ -9,8 +9,8 @@ import (
"github.com/docker/cli/internal/test"
"github.com/docker/docker/api/types"
"github.com/pkg/errors"
"gotest.tools/assert"
is "gotest.tools/assert/cmp"
"gotest.tools/v3/assert"
is "gotest.tools/v3/assert/cmp"
)
func TestNewImportCommandErrors(t *testing.T) {
@ -81,6 +81,14 @@ func TestNewImportCommandSuccess(t *testing.T) {
},
{
name: "change",
args: []string{"--change", "ENV DEBUG=true", "-"},
imageImportFunc: func(source types.ImageImportSource, ref string, options types.ImageImportOptions) (io.ReadCloser, error) {
assert.Check(t, is.Equal("ENV DEBUG=true", options.Changes[0]))
return ioutil.NopCloser(strings.NewReader("")), nil
},
},
{
name: "change legacy syntax",
args: []string{"--change", "ENV DEBUG true", "-"},
imageImportFunc: func(source types.ImageImportSource, ref string, options types.ImageImportOptions) (io.ReadCloser, error) {
assert.Check(t, is.Equal("ENV DEBUG true", options.Changes[0]))

View File

@ -7,9 +7,9 @@ import (
"github.com/docker/cli/internal/test"
"github.com/docker/docker/api/types"
"gotest.tools/assert"
is "gotest.tools/assert/cmp"
"gotest.tools/golden"
"gotest.tools/v3/assert"
is "gotest.tools/v3/assert/cmp"
"gotest.tools/v3/golden"
)
func TestNewInspectCommandErrors(t *testing.T) {

View File

@ -9,9 +9,9 @@ import (
"github.com/docker/cli/internal/test"
"github.com/docker/docker/api/types"
"github.com/pkg/errors"
"gotest.tools/assert"
is "gotest.tools/assert/cmp"
"gotest.tools/golden"
"gotest.tools/v3/assert"
is "gotest.tools/v3/assert/cmp"
"gotest.tools/v3/golden"
)
func TestNewImagesCommandErrors(t *testing.T) {

View File

@ -10,8 +10,8 @@ import (
"github.com/docker/cli/internal/test"
"github.com/docker/docker/api/types"
"github.com/pkg/errors"
"gotest.tools/assert"
"gotest.tools/golden"
"gotest.tools/v3/assert"
"gotest.tools/v3/golden"
)
func TestNewLoadCommandErrors(t *testing.T) {

View File

@ -9,9 +9,9 @@ import (
"github.com/docker/docker/api/types"
"github.com/docker/docker/api/types/filters"
"github.com/pkg/errors"
"gotest.tools/assert"
is "gotest.tools/assert/cmp"
"gotest.tools/golden"
"gotest.tools/v3/assert"
is "gotest.tools/v3/assert/cmp"
"gotest.tools/v3/golden"
)
func TestNewPruneCommandErrors(t *testing.T) {

View File

@ -10,9 +10,9 @@ import (
"github.com/docker/cli/internal/test"
"github.com/docker/cli/internal/test/notary"
"github.com/docker/docker/api/types"
"gotest.tools/assert"
is "gotest.tools/assert/cmp"
"gotest.tools/golden"
"gotest.tools/v3/assert"
is "gotest.tools/v3/assert/cmp"
"gotest.tools/v3/golden"
)
func TestNewPullCommandErrors(t *testing.T) {

View File

@ -9,7 +9,7 @@ import (
"github.com/docker/cli/internal/test"
"github.com/docker/docker/api/types"
"github.com/pkg/errors"
"gotest.tools/assert"
"gotest.tools/v3/assert"
)
func TestNewPushCommandErrors(t *testing.T) {

View File

@ -8,9 +8,9 @@ import (
"github.com/docker/cli/internal/test"
"github.com/docker/docker/api/types"
"github.com/pkg/errors"
"gotest.tools/assert"
is "gotest.tools/assert/cmp"
"gotest.tools/golden"
"gotest.tools/v3/assert"
is "gotest.tools/v3/assert/cmp"
"gotest.tools/v3/golden"
)
type notFound struct {

View File

@ -9,8 +9,8 @@ import (
"github.com/docker/cli/internal/test"
"github.com/pkg/errors"
"gotest.tools/assert"
is "gotest.tools/assert/cmp"
"gotest.tools/v3/assert"
is "gotest.tools/v3/assert/cmp"
)
func TestNewSaveCommandErrors(t *testing.T) {

View File

@ -5,8 +5,8 @@ import (
"testing"
"github.com/docker/cli/internal/test"
"gotest.tools/assert"
is "gotest.tools/assert/cmp"
"gotest.tools/v3/assert"
is "gotest.tools/v3/assert/cmp"
)
func TestCliNewTagCommandErrors(t *testing.T) {

View File

@ -10,7 +10,7 @@ import (
"github.com/theupdateframework/notary/client"
"github.com/theupdateframework/notary/passphrase"
"github.com/theupdateframework/notary/trustpinning"
"gotest.tools/assert"
"gotest.tools/v3/assert"
)
func unsetENV() {

View File

@ -6,8 +6,8 @@ import (
"testing"
"github.com/docker/cli/templates"
"gotest.tools/assert"
is "gotest.tools/assert/cmp"
"gotest.tools/v3/assert"
is "gotest.tools/v3/assert/cmp"
)
type testElement struct {

View File

@ -5,9 +5,9 @@ import (
"testing"
"github.com/docker/cli/internal/test"
"gotest.tools/assert"
is "gotest.tools/assert/cmp"
"gotest.tools/golden"
"gotest.tools/v3/assert"
is "gotest.tools/v3/assert/cmp"
"gotest.tools/v3/golden"
)
func TestManifestAnnotateError(t *testing.T) {

View File

@ -9,9 +9,9 @@ import (
"github.com/docker/cli/internal/test"
"github.com/docker/distribution/reference"
"github.com/pkg/errors"
"gotest.tools/assert"
is "gotest.tools/assert/cmp"
"gotest.tools/golden"
"gotest.tools/v3/assert"
is "gotest.tools/v3/assert/cmp"
"gotest.tools/v3/golden"
)
func TestManifestCreateErrors(t *testing.T) {

View File

@ -16,9 +16,9 @@ import (
digest "github.com/opencontainers/go-digest"
ocispec "github.com/opencontainers/image-spec/specs-go/v1"
"github.com/pkg/errors"
"gotest.tools/assert"
is "gotest.tools/assert/cmp"
"gotest.tools/golden"
"gotest.tools/v3/assert"
is "gotest.tools/v3/assert/cmp"
"gotest.tools/v3/golden"
)
func newTempManifestStore(t *testing.T) (store.Store, func()) {

View File

@ -9,7 +9,7 @@ import (
"github.com/docker/cli/internal/test"
"github.com/docker/distribution/reference"
"github.com/pkg/errors"
"gotest.tools/assert"
"gotest.tools/v3/assert"
)
func newFakeRegistryClient() *fakeRegistryClient {

View File

@ -8,8 +8,8 @@ import (
"github.com/docker/cli/internal/test"
"github.com/docker/docker/api/types/network"
"github.com/pkg/errors"
"gotest.tools/assert"
is "gotest.tools/assert/cmp"
"gotest.tools/v3/assert"
is "gotest.tools/v3/assert/cmp"
)
func TestNetworkConnectErrors(t *testing.T) {

View File

@ -10,8 +10,8 @@ import (
"github.com/docker/docker/api/types"
"github.com/docker/docker/api/types/network"
"github.com/pkg/errors"
"gotest.tools/assert"
is "gotest.tools/assert/cmp"
"gotest.tools/v3/assert"
is "gotest.tools/v3/assert/cmp"
)
func TestNetworkCreateErrors(t *testing.T) {

View File

@ -7,7 +7,7 @@ import (
"github.com/docker/cli/internal/test"
"github.com/pkg/errors"
"gotest.tools/assert"
"gotest.tools/v3/assert"
)
func TestNetworkDisconnectErrors(t *testing.T) {

View File

@ -12,8 +12,8 @@ import (
"github.com/docker/cli/internal/test"
"github.com/docker/docker/api/types"
"github.com/docker/docker/pkg/stringid"
"gotest.tools/assert"
is "gotest.tools/assert/cmp"
"gotest.tools/v3/assert"
is "gotest.tools/v3/assert/cmp"
)
func TestNetworkContext(t *testing.T) {

View File

@ -9,8 +9,8 @@ import (
"github.com/docker/cli/cli/command/formatter"
"github.com/docker/cli/opts"
"github.com/docker/docker/api/types"
"github.com/fvbommel/sortorder"
"github.com/spf13/cobra"
"vbom.ml/util/sortorder"
)
type listOptions struct {

View File

@ -11,9 +11,9 @@ import (
"github.com/docker/docker/api/types/filters"
"github.com/google/go-cmp/cmp"
"github.com/pkg/errors"
"gotest.tools/assert"
is "gotest.tools/assert/cmp"
"gotest.tools/golden"
"gotest.tools/v3/assert"
is "gotest.tools/v3/assert/cmp"
"gotest.tools/v3/golden"
)
func TestNetworkListErrors(t *testing.T) {

View File

@ -43,7 +43,7 @@ func NewPruneCommand(dockerCli command.Cli) *cobra.Command {
return cmd
}
const warning = `WARNING! This will remove all networks not used by at least one container.
const warning = `WARNING! This will remove all custom networks not used by at least one container.
Are you sure you want to continue?`
func runPrune(dockerCli command.Cli, options pruneOptions) (output string, err error) {

View File

@ -8,7 +8,7 @@ import (
. "github.com/docker/cli/internal/test/builders" // Import builders to get the builder function as package functions
"github.com/docker/docker/api/types/swarm"
"github.com/pkg/errors"
"gotest.tools/assert"
"gotest.tools/v3/assert"
)
func TestNodeDemoteErrors(t *testing.T) {

View File

@ -12,8 +12,8 @@ import (
"github.com/docker/docker/api/types"
"github.com/docker/docker/api/types/swarm"
"github.com/docker/docker/pkg/stringid"
"gotest.tools/assert"
is "gotest.tools/assert/cmp"
"gotest.tools/v3/assert"
is "gotest.tools/v3/assert/cmp"
)
func TestNodeContext(t *testing.T) {

View File

@ -10,8 +10,8 @@ import (
"github.com/docker/docker/api/types"
"github.com/docker/docker/api/types/swarm"
"github.com/pkg/errors"
"gotest.tools/assert"
"gotest.tools/golden"
"gotest.tools/v3/assert"
"gotest.tools/v3/golden"
)
func TestNodeInspectErrors(t *testing.T) {

View File

@ -9,8 +9,8 @@ import (
"github.com/docker/cli/cli/command/formatter"
"github.com/docker/cli/opts"
"github.com/docker/docker/api/types"
"github.com/fvbommel/sortorder"
"github.com/spf13/cobra"
"vbom.ml/util/sortorder"
)
type listOptions struct {

View File

@ -10,9 +10,9 @@ import (
"github.com/docker/docker/api/types"
"github.com/docker/docker/api/types/swarm"
"github.com/pkg/errors"
"gotest.tools/assert"
is "gotest.tools/assert/cmp"
"gotest.tools/golden"
"gotest.tools/v3/assert"
is "gotest.tools/v3/assert/cmp"
"gotest.tools/v3/golden"
)
func TestNodeListErrorOnAPIFailure(t *testing.T) {

View File

@ -8,7 +8,7 @@ import (
. "github.com/docker/cli/internal/test/builders" // Import builders to get the builder function as package function
"github.com/docker/docker/api/types/swarm"
"github.com/pkg/errors"
"gotest.tools/assert"
"gotest.tools/v3/assert"
)
func TestNodePromoteErrors(t *testing.T) {

View File

@ -12,8 +12,8 @@ import (
"github.com/docker/docker/api/types"
"github.com/docker/docker/api/types/swarm"
"github.com/pkg/errors"
"gotest.tools/assert"
"gotest.tools/golden"
"gotest.tools/v3/assert"
"gotest.tools/v3/golden"
)
func TestNodePsErrors(t *testing.T) {

View File

@ -6,7 +6,7 @@ import (
"github.com/docker/cli/internal/test"
"github.com/pkg/errors"
"gotest.tools/assert"
"gotest.tools/v3/assert"
)
func TestNodeRemoveErrors(t *testing.T) {

View File

@ -8,7 +8,7 @@ import (
. "github.com/docker/cli/internal/test/builders" // Import builders to get the builder function as package function
"github.com/docker/docker/api/types/swarm"
"github.com/pkg/errors"
"gotest.tools/assert"
"gotest.tools/v3/assert"
)
func TestNodeUpdateErrors(t *testing.T) {

View File

@ -4,9 +4,9 @@ import (
"io/ioutil"
"testing"
"gotest.tools/assert"
is "gotest.tools/assert/cmp"
"gotest.tools/env"
"gotest.tools/v3/assert"
is "gotest.tools/v3/assert/cmp"
"gotest.tools/v3/env"
)
func TestOrchestratorSwitch(t *testing.T) {

Some files were not shown because too many files have changed in this diff Show More