The Docker CLI
Go to file
Ian Campbell 8635abd662 Use underlying `NewKubernetesConfig` directly from compose-on-kubernetes.
The comment on `github.com/docker/cli/kubernetes.NewKubernetesConfig` said:

    // Deprecated: Use github.com/docker/compose-on-kubernetes/api.NewKubernetesConfig instead

By making this switch in `github.com/docker/cli/context/kubernetes/load.go` we
break a vendoring chain:

`github.com/docker/cli/cli/command`
→ `vendor/github.com/docker/cli/cli/context/kubernetes/load.go`
  → `vendor/github.com/docker/cli/kubernetes`
     → `github.com/docker/compose-on-kubernetes/api/compose/...`

This means that projects which just want `github.com/docker/cli/cli/command`
(which is itself pulled in transitively by
`github.com/docker/cli/cli-plugins/plugin`) which do not themselves need the
compose-on-kubernetes API avoid a huge pile of transitive dependencies.

On one of my private projects the diff on the vendor dir is:

    280 files changed, 21 insertions(+), 211346 deletions(-)

and includes dropping:

* `github.com/docker/compose-on-kubernetes/api/compose/{clone,impersonation}`
* `github.com/docker/compose-on-kubernetes/api/compose/{v1alpha3,v1beta1,v1beta2,v1beta3}`
* `github.com/google/btree`
* `github.com/googleapis/gnostic`
* `github.com/gregjones/httpcache`
* `github.com/peterbourgon/diskv`
* `k8s.io/api/*` (_lots_ of subpackages)
* `k8s.io/client-go/{discovery,kubernetes/scheme}`

and I've gone from:

    $ du -sh vendor/k8s.io/
    8.1M	vendor/k8s.io/

to:

    $ du -sh vendor/k8s.io/
    2.1M	vendor/k8s.io/

(overall I went from 36M → 29M of vendor dir for this particular project)

The change to `cli/command/system/version.go` is just for consistency and
allows us to drop the now unused alias.

Signed-off-by: Ian Campbell <ijc@docker.com>
2019-05-14 15:43:15 +01:00
.github Remove myself from codeowners 😅 2019-01-10 17:32:07 +01:00
cli Use underlying `NewKubernetesConfig` directly from compose-on-kubernetes. 2019-05-14 15:43:15 +01:00
cli-plugins cli-plugins: fix when plugin does not use PersistentPreRun* hooks 2019-04-30 10:45:29 +01:00
cmd/docker Use command.Cli instead of command.DockerCli 2019-04-26 15:43:03 +01:00
contrib/completion Merge pull request #1868 from albers/completion-context-create--from 2019-05-10 15:16:42 -07:00
dockerfiles Bump golang 1.12.5 2019-05-08 08:43:22 +08:00
docs Fix PowerShell codehint for rouge 2019-05-13 16:37:30 -07:00
e2e Merge pull request #1853 from ijc/cli-plugin-persistentprerun-hook 2019-05-13 07:06:42 -07:00
experimental Fix link to Kubernetes blog 2018-12-29 01:39:54 +01:00
internal context: produce consistent output on `context create`. 2019-05-13 16:42:03 +01:00
kubernetes Use underlying `NewKubernetesConfig` directly from compose-on-kubernetes. 2019-05-14 15:43:15 +01:00
man Add exit status to docker exec manpage 2019-02-25 18:59:18 +00:00
opts Refactor network parsing, add preliminary support for multiple networks 2019-04-03 16:42:57 +02:00
scripts Merge pull request #1692 from thaJeztah/remove_bashisms 2019-03-21 16:17:49 -07:00
service/logs Update tests to use gotest.tools 👼 2018-06-08 18:24:26 +02:00
templates Update tests to use gotest.tools 👼 2018-06-08 18:24:26 +02:00
types Remove unused helath check func 2018-10-02 20:52:34 +02:00
vendor Merge pull request #1824 from thaJeztah/bump_grpc_1.20.0 2019-05-13 18:42:26 -07:00
.dockerignore make go build and docker build operations faster 2017-04-27 15:06:57 -07:00
.gitignore Update gitignore 2017-09-27 16:45:35 +02:00
.mailmap Update AUTHORS and mailmap 2019-04-27 17:39:39 -07:00
AUTHORS Update AUTHORS and mailmap 2019-04-27 17:39:39 -07:00
CONTRIBUTING.md Add Contribution guidelines 2017-07-28 11:33:19 -07:00
Jenkinsfile Add a Jenkinsfile 2017-08-16 10:46:43 -04:00
LICENSE Add project files 2017-04-17 17:49:33 -04:00
MAINTAINERS Remove outdated completion reviewers file 2018-08-01 15:08:36 +02:00
Makefile Allow control over dirs passed to e2e and unit tests 2019-03-11 16:02:55 +00:00
NOTICE Add project files 2017-04-17 17:49:33 -04:00
README.md Add jenkins build status to readme 2017-09-15 15:08:28 +02:00
TESTING.md Update TESTING.md to replace testify by gotest.tools 2018-07-02 09:24:28 +02:00
VERSION Bump version to 19.09.0-dev 2019-05-10 17:30:44 -07:00
appveyor.yml Bump golang 1.12.5 2019-05-08 08:43:22 +08:00
circle.yml CircleCI: store junit.xml as artifact 2019-05-07 14:02:16 -07:00
codecov.yml Fix PR comments 2018-01-03 10:23:32 +01:00
docker.Makefile Allow control over dirs passed to e2e and unit tests 2019-03-11 16:02:55 +00:00
gometalinter.json Add support for kubernetes in docker cli 2017-12-26 11:22:32 +01:00
poule.yml Add github templates and initial poule configuration 2017-05-09 16:57:46 +02:00
vendor.conf Merge pull request #1824 from thaJeztah/bump_grpc_1.20.0 2019-05-13 18:42:26 -07:00

README.md

build status Build Status

docker/cli

This repository is the home of the cli used in the Docker CE and Docker EE products.

Development

docker/cli is developed using Docker.

Build a linux binary:

$ make -f docker.Makefile binary

Build binaries for all supported platforms:

$ make -f docker.Makefile cross

Run all linting:

$ make -f docker.Makefile lint

List all the available targets:

$ make help

In-container development environment

Start an interactive development environment:

$ make -f docker.Makefile shell

In the development environment you can run many tasks, including build binaries:

$ make binary

Legal

Brought to you courtesy of our legal counsel. For more context, please see the NOTICE document in this repo.

Use and transfer of Docker may be subject to certain restrictions by the United States and other governments.

It is your responsibility to ensure that your use and/or transfer does not violate applicable laws.

For more information, please see https://www.bis.doc.gov

Licensing

docker/cli is licensed under the Apache License, Version 2.0. See LICENSE for the full license text.