Commit Graph

6238 Commits

Author SHA1 Message Date
Ian Campbell 891b3d953e cli-plugins: use `docker system dial-stdio` to call the daemon
This means that plugins can use whatever methods the monolithic CLI supports,
which is good for consistency.

This relies on `os.Args[0]` being something which can be executed again to
reach the same binary, since it is propagated (via an envvar) to the plugin for
this purpose. This essentially requires that the current working directory and
path are not modified by the monolithic CLI before it launches the plugin nor
by the plugin before it initializes the client. This should be the case.

Previously the fake apiclient used by `TestExperimentalCLI` was not being used,
since `cli.Initialize` was unconditionally overwriting it with a real one
(talking to a real daemon during unit testing, it seems). This wasn't expected
nor desirable and no longer happens with the new arrangements, exposing the
fact that no `pingFunc` is provided, leading to a panic. Add a `pingFunc` to
the fake client to avoid this.

Signed-off-by: Ian Campbell <ijc@docker.com>
2019-02-18 11:53:37 +00:00
Craig Wilhite 90c595fd03 Include reference for how to run with --device on Windows. Explain limitations (no Hyper-V isolation, no LCOW).
Signed-off-by: Craig Wilhite <crwilhit@microsoft.com>
2019-02-15 08:07:45 -08:00
Sebastiaan van Stijn db166da03a
Merge pull request #1670 from stevejr/correct-dockerd-max-file-opt
Corrected max-file option - was incorrectly spelt as max-files
2019-02-13 14:30:23 +01:00
stevejr 04f88005c9 Corrected max-file option - was incorrectly spelt as max-files
Signed-off-by: Steve Richards <steve.richards@docker.com>
2019-02-13 12:29:34 +00:00
Silvin Lubecki 7f612bfca6
Merge pull request #1529 from lifubang/ttyexecresize
fixes 1492: tty initial size error
2019-02-12 10:31:17 +01:00
Lifubang 3fbffc682b tty initial size error
Signed-off-by: Lifubang <lifubang@acmcoder.com>
Signed-off-by: lifubang <lifubang@acmcoder.com>
2019-02-12 09:14:50 +08:00
Sebastiaan van Stijn 8271c94dfe
Merge pull request #1650 from MatteoOreficeIT/master
prevent bash process substitution error in cygwin
2019-02-11 15:32:56 +01:00
Matteo Orefice 0b49495b1d Prevent bash process substitution error in cygwin
Signed-off-by: Matteo Orefice <matteo.orefice@bites4bits.software>
2019-02-10 14:04:45 +00:00
Sebastiaan van Stijn 8af4e77994
Merge pull request #1588 from mdsouza2/add-quiet-flag-to-docker-pull
Add quiet flag to bash completion for docker pull
2019-02-08 23:18:31 +01:00
Sebastiaan van Stijn 5f2ef6a515
Merge pull request #1646 from ryanwilsonperkin/patch-1
Fix small typo
2019-02-08 23:04:48 +01:00
Tibor Vass 60e774305d
Merge pull request #1602 from thaJeztah/hide_experimental_deploy
Hide legacy top-level "deploy" command with DOCKER_HIDE_LEGACY_COMMANDS=1
2019-02-08 13:53:12 -08:00
Ben Creasy 767b25fc52 Note caveat with detaching using key sequence
This has come up a few times, e.g. https://github.com/moby/moby/issues/20864 and https://github.com/moby/moby/issues/35491

Signed-off-by: Ben Creasy <ben@bencreasy.com>
2019-02-08 13:13:05 -08:00
Brian Goff 3e8a23a7fb
Merge pull request #1625 from albers/completion-stoppable
Complete paused containers on `docker stop`
2019-02-07 09:37:35 -08:00
Sebastiaan van Stijn d21d1ce675
Merge pull request #1648 from thaJeztah/hide_builder_and_network
Hide "builder" and "network" commands on old API versions
2019-02-07 18:34:08 +01:00
Sebastiaan van Stijn f637fbe933
Merge pull request #1662 from michael-k/small-fixes
Fix typos
2019-02-07 16:05:47 +01:00
Michael Käufl 0e469c1d1d
Fix typos
Signed-off-by: Michael Käufl <docker@c.michael-kaeufl.de>
2019-02-07 13:23:13 +01:00
Silvin Lubecki b1d27091e5
Merge pull request #1515 from sw-pschmied/1514-prevent-replacing-irregular-files
Prevent overwriting irregular files (cp, save, export commands)
2019-02-07 10:05:02 +01:00
Philipp Schmied 7632776b35 Prevent overwriting irregular files (cp, save, export commands)
Signed-off-by: Philipp Schmied <pschmied@schutzwerk.com>
2019-02-07 09:17:35 +01:00
Vincent Demeester 8ef8df81a8
Merge pull request #1655 from thaJeztah/bump_engine
Update docker, swarmkit, containerd v1.2.2
2019-02-06 18:24:05 +01:00
Silvin Lubecki 7e0a966613
Merge pull request #1561 from thaJeztah/bump_containerd_v1.2.1
Update containerd to 1.2.1
2019-02-06 17:37:36 +01:00
Silvin Lubecki b877ef85b2
Merge pull request #1657 from thaJeztah/compose_credential_spec_fix
compose file: disallow additional properties in credential_spec
2019-02-06 16:21:35 +01:00
Silvin Lubecki bdf666c240
Merge pull request #1658 from thaJeztah/update_authors
Update authors
2019-02-06 16:20:15 +01:00
Silvin Lubecki afde31d710
Merge pull request #1606 from jhowardmsft/device
Add --device support for Windows
2019-02-06 11:44:43 +01:00
John Howard 593acf077b Add --device support for Windows
Adds support for --device in Windows. This must take the form of:
--device='class/clsid'. See this post for more information:

https://blogs.technet.microsoft.com/virtualization/2018/08/13/bringing-device-support-to-windows-server-containers/

Signed-off-by: John Howard <jhoward@microsoft.com>
2019-02-04 08:32:47 -08:00
Sebastiaan van Stijn 700cceca4c
Update authors
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2019-02-04 08:25:01 +01:00
Sebastiaan van Stijn 1e99ed3ca3
Disallow additional properties in credential_spec
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2019-02-02 18:27:50 +01:00
Sebastiaan van Stijn d034df736b
Update docker, swarmkit, containerd v1.2.2
Also update the tests to account for the new "Builder" field
in docker info.

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2019-02-02 17:03:12 +01:00
Sebastiaan van Stijn 7df6bb51ab
Update github.com/containerd/continuity
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2019-02-02 13:31:09 +01:00
Sebastiaan van Stijn f353eeb544
Update containerd to 1.2.1
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2019-02-02 13:30:55 +01:00
Vincent Demeester 896ff57b30
Merge pull request #1653 from silvin-lubecki/fix-storing-test-results
Fix storing test results on circle ci.
2019-02-01 12:06:49 +01:00
Silvin Lubecki 26c598801b Fix storing test results on circle ci.
Signed-off-by: Silvin Lubecki <silvin.lubecki@docker.com>
2019-02-01 11:56:27 +01:00
Vincent Demeester 3b345e4aad
Merge pull request #1639 from silvin-lubecki/use-gotestsum
Use gotest.tools/gotestsum for unit and e2e tests
2019-02-01 11:46:12 +01:00
Ian Campbell 8fa7c572d4 cli-plugins: use only the first word of `Use` as the name
This can be obtained with the `.Name()` method.

Signed-off-by: Ian Campbell <ijc@docker.com>
2019-02-01 10:41:10 +00:00
Silvin Lubecki ff5a83c3aa Store the junit.xml file produced while running the unit tests.
Signed-off-by: Silvin Lubecki <silvin.lubecki@docker.com>
2019-02-01 11:32:23 +01:00
Silvin Lubecki 277f61415e Better coverage output, removing unnecessary unit scripts.
Signed-off-by: Silvin Lubecki <silvin.lubecki@docker.com>
2019-02-01 11:16:20 +01:00
Silvin Lubecki 3bd3996f72 Use gotest.tools/gotestsum binary to run unit and e2e tests and simplify the output.
Signed-off-by: Silvin Lubecki <silvin.lubecki@docker.com>
2019-02-01 11:16:20 +01:00
Sebastiaan van Stijn 2344627564
Merge pull request #1642 from tiborvass/better-dep-graph-auth-type
Remove docker api dependency from cli/config
2019-01-31 23:37:13 +01:00
Tonis Tiigi 27b2797f7d Remove docker api dependency from cli/config
Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
Signed-off-by: Tibor Vass <tibor@docker.com>
2019-01-31 21:25:43 +00:00
Silvin Lubecki 2e5639da02
Merge pull request #1564 from ijc/plugins
Basic framework for writing and running CLI plugins
2019-01-31 17:44:46 +01:00
Sebastiaan van Stijn 5486cddbd9
Merge pull request #1617 from simonferquel/pull-secrets
Add support for Kubernetes Pull secrets and Pull policies
2019-01-31 13:37:45 +01:00
Ryan Wilson-Perkin 7a9fc782c5 Fix small typo
Noticed a typo in this markdown file: "instead" instead of "in stead"

Signed-off-by: Ryan Wilson-Perkin <ryanwilsonperkin@gmail.com>
2019-01-30 11:00:38 -05:00
Ian Campbell baabf6e8ad Ensure that plugins are only listed once in help outputs.
They were listed twice in `docker --help` (but not `docker help`), since the
stubs were added in both `tryRunPluginHelp` and the `setHelpFunc` closure.

Calling `AddPluginStubCommands` earlier in `setHelpFunc` before the call to
`tryRunPluginHelp` is sufficient. Also it is no longer necessary to add just
valid plugins (`tryRunPluginHelp` handles invalid plugins correctly) so remove
that logic (which was in any case broken for e.g. `docker --help`).

Update the e2e test to check for duplicate entries and also to test `docker
--help` which was previously missed.

Signed-off-by: Ian Campbell <ijc@docker.com>
2019-01-30 13:55:42 +00:00
Ian Campbell 0a89eb554b Ensure plugins default search path obeys `--config`
A static global initialiser happens before the arguments are parsed, so we need
to calculate the path later.

Signed-off-by: Ian Campbell <ijc@docker.com>
2019-01-30 13:45:26 +00:00
Ian Campbell 935d47bbe9 Ignore unknown arguments on the top-level command.
This allows passing argument to plugins, otherwise they are caught by the parse
loop, since cobra does not know about each plugin at this stage (to avoid
having to always scan for all plugins) this means that e.g. `docker plugin
--foo` would accumulate `plugin` as an arg to the `docker` command, then choke
on the unknown `--foo`.

This allows unknown global args only, unknown arguments on subcommands (e.g.
`docker ps --foo`) are still correctly caught.

Add an e2e test covering this case.

Signed-off-by: Ian Campbell <ijc@docker.com>
2019-01-30 13:45:26 +00:00
Ian Campbell 1337895751 Check for `.exe` case insensitively
On Windows `foo.exe`, `foo.eXe` and `foo.EXE` are equally executable.

Signed-off-by: Ian Campbell <ijc@docker.com>
2019-01-30 13:45:26 +00:00
Ian Campbell 63f3ad181b Refactor code which deals with Windows' `.exe` suffix
Signed-off-by: Ian Campbell <ijc@docker.com>
2019-01-30 13:45:26 +00:00
Ian Campbell 609dcb9152 Documentation on writing a plugin
Signed-off-by: Ian Campbell <ijc@docker.com>
2019-01-30 13:45:26 +00:00
Ian Campbell 1c576e9043 Integrate CLI plugins into `docker info`
Fairly straight forward. It became necessary to wrap `Plugin.Err` with a type
which implements `encoding.MarshalText` in order to have that field rendered
properly in the `docker info -f '{{json}}'` output.

Since I changed the type somewhat I also added a unit test for `formatInfo`.

Signed-off-by: Ian Campbell <ijc@docker.com>
2019-01-30 13:45:26 +00:00
Ian Campbell 0ab8ec0e4c Output broken CLI plugins in `help` output.
Signed-off-by: Ian Campbell <ijc@docker.com>
2019-01-30 13:45:26 +00:00
Ian Campbell e5e578abc7 Allow plugins to make use of the cobra `PersistentPreRun` hooks.
Previously a plugin which used these hooks would overwrite the top-level plugin
command's use of this hook, resulting in the dockerCli object not being fully
initialised.

Provide a function which plugins can use to chain to the required behaviour.
This required some fairly ugly arrangements to preserve state (which was
previously in-scope in `newPluginCOmmand`) to be used by the new function.

Signed-off-by: Ian Campbell <ijc@docker.com>
2019-01-30 13:45:26 +00:00