From 40736b1848b7e3cc6fb2bda453d459ddcaf28b9d Mon Sep 17 00:00:00 2001 From: Harald Albers Date: Fri, 6 Jan 2017 07:45:09 -0800 Subject: [PATCH 1/8] Fix wrong command in changelog Signed-off-by: Harald Albers (cherry picked from commit 1fe0270e728dd587c724c5f0de211ab739918e4b) Signed-off-by: Victor Vieux --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index c90f53eea2..acf2f930a1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -110,7 +110,7 @@ To manually remove all plugins and resolve this problem, take the following step * Remove `--name` from `docker volume create` [#23830](https://github.com/docker/docker/pull/23830) + Add `docker stack ls` [#23886](https://github.com/docker/docker/pull/23886) + Add a new `is-task` ps filter [#24411](https://github.com/docker/docker/pull/24411) -+ Add `--env-file` flag to `docker create service` [#24844](https://github.com/docker/docker/pull/24844) ++ Add `--env-file` flag to `docker service create` [#24844](https://github.com/docker/docker/pull/24844) + Add `--format` on `docker stats` [#24987](https://github.com/docker/docker/pull/24987) + Make `docker node ps` default to `self` in swarm node [#25214](https://github.com/docker/docker/pull/25214) + Add `--group` in `docker service create` [#25317](https://github.com/docker/docker/pull/25317) From d3bffd978a07d8c6393e23569cab2d1a802862a6 Mon Sep 17 00:00:00 2001 From: Tonis Tiigi Date: Thu, 5 Jan 2017 13:55:43 -0800 Subject: [PATCH 2/8] Set plugins used in tests back to original names Signed-off-by: Tonis Tiigi (cherry picked from commit f4798b98fc2c8d3d7688fdd7c1a055f452c29770) Signed-off-by: Victor Vieux --- integration-cli/docker_cli_authz_plugin_v2_test.go | 4 ++-- integration-cli/docker_cli_network_unix_test.go | 2 +- integration-cli/docker_cli_plugins_test.go | 4 ++-- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/integration-cli/docker_cli_authz_plugin_v2_test.go b/integration-cli/docker_cli_authz_plugin_v2_test.go index ca71fed45f..8a669fb379 100644 --- a/integration-cli/docker_cli_authz_plugin_v2_test.go +++ b/integration-cli/docker_cli_authz_plugin_v2_test.go @@ -11,10 +11,10 @@ import ( ) var ( - authzPluginName = "tonistiigi/authz-no-volume-plugin" + authzPluginName = "riyaz/authz-no-volume-plugin" authzPluginTag = "latest" authzPluginNameWithTag = authzPluginName + ":" + authzPluginTag - authzPluginBadManifestName = "tonistiigi/authz-plugin-bad-manifest" + authzPluginBadManifestName = "riyaz/authz-plugin-bad-manifest" nonexistentAuthzPluginName = "riyaz/nonexistent-authz-plugin" ) diff --git a/integration-cli/docker_cli_network_unix_test.go b/integration-cli/docker_cli_network_unix_test.go index 7d5f015b82..829ad95d6a 100644 --- a/integration-cli/docker_cli_network_unix_test.go +++ b/integration-cli/docker_cli_network_unix_test.go @@ -772,7 +772,7 @@ func (s *DockerNetworkSuite) TestDockerPluginV2NetworkDriver(c *check.C) { testRequires(c, DaemonIsLinux, IsAmd64, Network) var ( - npName = "tonistiigi/test-docker-netplugin" + npName = "tiborvass/test-docker-netplugin" npTag = "latest" npNameWithTag = npName + ":" + npTag ) diff --git a/integration-cli/docker_cli_plugins_test.go b/integration-cli/docker_cli_plugins_test.go index 6a24ae8366..fd8f1a11fa 100644 --- a/integration-cli/docker_cli_plugins_test.go +++ b/integration-cli/docker_cli_plugins_test.go @@ -15,8 +15,8 @@ import ( var ( pluginProcessName = "sample-volume-plugin" - pName = "tonistiigi/sample-volume-plugin" - npName = "tonistiigi/test-docker-netplugin" + pName = "tiborvass/sample-volume-plugin" + npName = "tiborvass/test-docker-netplugin" pTag = "latest" pNameWithTag = pName + ":" + pTag npNameWithTag = npName + ":" + pTag From 57a63f1ed2cdf8d15549f2c9ce0e5f62bae17321 Mon Sep 17 00:00:00 2001 From: Yunxiang Huang Date: Thu, 5 Jan 2017 11:13:17 +0800 Subject: [PATCH 3/8] Fix "zsh/_docker" Signed-off-by: Yunxiang Huang (cherry picked from commit c6544394b8c5f406ea9054ed7e3e00206c2f0235) Signed-off-by: Victor Vieux --- contrib/completion/zsh/_docker | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/contrib/completion/zsh/_docker b/contrib/completion/zsh/_docker index 8d00b13e6d..1aec353c57 100644 --- a/contrib/completion/zsh/_docker +++ b/contrib/completion/zsh/_docker @@ -917,7 +917,7 @@ __docker_image_subcommand() { "($help)*--label=[Set metadata for an image]:label=value: " \ "($help -m --memory)"{-m=,--memory=}"[Memory limit]:Memory limit: " \ "($help)--memory-swap=[Total memory limit with swap]:Memory limit: " \ - "($help)--network=[Connect a container to a network]:network mode:(bridge none container host)" + "($help)--network=[Connect a container to a network]:network mode:(bridge none container host)" \ "($help)--no-cache[Do not use cache when building the image]" \ "($help)--pull[Attempt to pull a newer version of the image]" \ "($help -q --quiet)"{-q,--quiet}"[Suppress verbose build output]" \ From b2e12626c7964a1a2295ec769e1957c69f79175c Mon Sep 17 00:00:00 2001 From: Harald Albers Date: Wed, 4 Jan 2017 09:53:14 -0800 Subject: [PATCH 4/8] Add bash completion for plugin names Signed-off-by: Harald Albers (cherry picked from commit e7243a303a9fb982db535b9941b9a60df0be8de5) Signed-off-by: Victor Vieux --- contrib/completion/bash/docker | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/contrib/completion/bash/docker b/contrib/completion/bash/docker index 52956f2ca8..24311f8ade 100644 --- a/contrib/completion/bash/docker +++ b/contrib/completion/bash/docker @@ -23,6 +23,7 @@ # DOCKER_COMPLETION_SHOW_CONTAINER_IDS # DOCKER_COMPLETION_SHOW_NETWORK_IDS # DOCKER_COMPLETION_SHOW_NODE_IDS +# DOCKER_COMPLETION_SHOW_PLUGIN_IDS # DOCKER_COMPLETION_SHOW_SECRET_IDS # DOCKER_COMPLETION_SHOW_SERVICE_IDS # "no" - Show names only (default) @@ -286,9 +287,17 @@ __docker_complete_plugins_bundled() { # __docker_plugins_installed returns a list of all plugins that were installed with # the Docker plugin API. +# By default, only names are returned. +# Set DOCKER_COMPLETION_SHOW_PLUGIN_IDS=yes to also complete IDs. # For built-in pugins, see `__docker_plugins_bundled`. __docker_plugins_installed() { - __docker_q plugin ls | awk 'NR>1 {print $1}' + local fields + if [ "$DOCKER_COMPLETION_SHOW_PLUGIN_IDS" = yes ] ; then + fields='$1,$2' + else + fields='$2' + fi + __docker_q plugin ls | awk "NR>1 {print $fields}" } # __docker_complete_plugins_installed applies completion of plugins that were installed From 7c8511236cc5c4fada547fd25af508ea4387d33f Mon Sep 17 00:00:00 2001 From: Tonis Tiigi Date: Fri, 6 Jan 2017 11:55:37 -0800 Subject: [PATCH 5/8] Fix workdir cache invalidation Signed-off-by: Tonis Tiigi (cherry picked from commit e16086005425b626bccc0fedcf5ae195f913c636) Signed-off-by: Victor Vieux --- builder/dockerfile/dispatchers.go | 14 ++++++++------ integration-cli/docker_cli_build_test.go | 6 +++++- 2 files changed, 13 insertions(+), 7 deletions(-) diff --git a/builder/dockerfile/dispatchers.go b/builder/dockerfile/dispatchers.go index 42eebd050d..3e78abdd68 100644 --- a/builder/dockerfile/dispatchers.go +++ b/builder/dockerfile/dispatchers.go @@ -297,17 +297,19 @@ func workdir(b *Builder, args []string, attributes map[string]bool, original str } b.runConfig.Image = b.image + cmd := b.runConfig.Cmd + comment := "WORKDIR " + b.runConfig.WorkingDir + // reset the command for cache detection + b.runConfig.Cmd = strslice.StrSlice(append(getShell(b.runConfig), "#(nop) "+comment)) + defer func(cmd strslice.StrSlice) { b.runConfig.Cmd = cmd }(cmd) + if hit, err := b.probeCache(); err != nil { return err } else if hit { return nil } - // Actually copy the struct - workdirConfig := *b.runConfig - workdirConfig.Cmd = strslice.StrSlice(append(getShell(b.runConfig), fmt.Sprintf("#(nop) WORKDIR %s", b.runConfig.WorkingDir))) - - container, err := b.docker.ContainerCreate(types.ContainerCreateConfig{Config: &workdirConfig}) + container, err := b.docker.ContainerCreate(types.ContainerCreateConfig{Config: b.runConfig}) if err != nil { return err } @@ -316,7 +318,7 @@ func workdir(b *Builder, args []string, attributes map[string]bool, original str return err } - return b.commit(container.ID, b.runConfig.Cmd, "WORKDIR "+b.runConfig.WorkingDir) + return b.commit(container.ID, cmd, comment) } // RUN some command yo diff --git a/integration-cli/docker_cli_build_test.go b/integration-cli/docker_cli_build_test.go index 4bb4e65987..672d95e762 100644 --- a/integration-cli/docker_cli_build_test.go +++ b/integration-cli/docker_cli_build_test.go @@ -7394,6 +7394,10 @@ func (s *DockerSuite) TestBuildWorkdirCmd(c *check.C) { FROM golang:1.7-alpine WORKDIR / ` - _, err := buildImage("testbuildworkdircmd", dockerFile, false) + _, err := buildImage("testbuildworkdircmd", dockerFile, true) c.Assert(err, checker.IsNil) + + _, out, err := buildImageWithOut("testbuildworkdircmd", dockerFile, true) + c.Assert(err, checker.IsNil) + c.Assert(strings.Count(out, "Using cache"), checker.Equals, 1) } From b2219f1bb5945999501e8e5e5f963b4f3e90aed6 Mon Sep 17 00:00:00 2001 From: Victor Vieux Date: Fri, 6 Jan 2017 12:06:02 -0800 Subject: [PATCH 6/8] remove -f on secret create and unify usage with other commands Signed-off-by: Victor Vieux (cherry picked from commit db6652ca71c60c1ff3ac274968876c88eb7146ad) Signed-off-by: Victor Vieux --- cli/command/secret/create.go | 10 +++------- docs/reference/commandline/secret_create.md | 9 ++++----- integration-cli/docker_cli_secret_create_test.go | 11 +---------- 3 files changed, 8 insertions(+), 22 deletions(-) diff --git a/cli/command/secret/create.go b/cli/command/secret/create.go index 5d4dc34d12..f4683a60f5 100644 --- a/cli/command/secret/create.go +++ b/cli/command/secret/create.go @@ -27,17 +27,17 @@ func newSecretCreateCommand(dockerCli *command.DockerCli) *cobra.Command { } cmd := &cobra.Command{ - Use: "create [OPTIONS] SECRET", + Use: "create [OPTIONS] SECRET file|-", Short: "Create a secret from a file or STDIN as content", - Args: cli.ExactArgs(1), + Args: cli.ExactArgs(2), RunE: func(cmd *cobra.Command, args []string) error { createOpts.name = args[0] + createOpts.file = args[1] return runSecretCreate(dockerCli, createOpts) }, } flags := cmd.Flags() flags.VarP(&createOpts.labels, "label", "l", "Secret labels") - flags.StringVarP(&createOpts.file, "file", "f", "", "Read from a file or STDIN ('-')") return cmd } @@ -46,10 +46,6 @@ func runSecretCreate(dockerCli *command.DockerCli, options createOptions) error client := dockerCli.Client() ctx := context.Background() - if options.file == "" { - return fmt.Errorf("Please specify either a file name or STDIN ('-') with --file") - } - var in io.Reader = dockerCli.In() if options.file != "-" { file, err := system.OpenSequential(options.file) diff --git a/docs/reference/commandline/secret_create.md b/docs/reference/commandline/secret_create.md index d63083b3e6..aebcebbcdd 100644 --- a/docs/reference/commandline/secret_create.md +++ b/docs/reference/commandline/secret_create.md @@ -16,12 +16,11 @@ keywords: ["secret, create"] # secret create ```Markdown -Usage: docker secret create [OPTIONS] SECRET +Usage: docker secret create [OPTIONS] SECRET file|- Create a secret from a file or STDIN as content Options: - -f, --file string Read from a file or STDIN ('-') --help Print usage -l, --label list Secret labels (default []) ``` @@ -34,7 +33,7 @@ command on a manager node. ### Create a secret ```bash -$ echo | docker secret create -f - my_secret +$ echo | docker secret create my_secret - mhv17xfe3gh6xc4rij5orpfds $ docker secret ls @@ -45,7 +44,7 @@ mhv17xfe3gh6xc4rij5orpfds my_secret 2016-10-27 23:25:43.90918108 ### Create a secret with a file ```bash -$ docker secret create -f secret.json my_secret +$ docker secret create my_secret ./secret.json mhv17xfe3gh6xc4rij5orpfds $ docker secret ls @@ -56,7 +55,7 @@ mhv17xfe3gh6xc4rij5orpfds my_secret 2016-10-27 23:25:43.90918108 ### Create a secret with labels ```bash -$ docker secret create -f secret.json --label env=dev --label rev=20161102 my_secret +$ docker secret create --label env=dev --label rev=20161102 my_secret ./secret.json jtn7g6aukl5ky7nr9gvwafoxh $ docker secret inspect my_secret diff --git a/integration-cli/docker_cli_secret_create_test.go b/integration-cli/docker_cli_secret_create_test.go index 5097f1e707..b79fdbeb59 100644 --- a/integration-cli/docker_cli_secret_create_test.go +++ b/integration-cli/docker_cli_secret_create_test.go @@ -121,20 +121,11 @@ func (s *DockerSwarmSuite) TestSecretCreateWithFile(c *check.C) { c.Assert(err, checker.IsNil, check.Commentf("failed to write to temporary file")) testName := "test_secret" - out, err := d.Cmd("secret", "create", "--file", testFile.Name(), testName) + out, err := d.Cmd("secret", "create", testName, testFile.Name()) c.Assert(err, checker.IsNil) c.Assert(strings.TrimSpace(out), checker.Not(checker.Equals), "", check.Commentf(out)) id := strings.TrimSpace(out) secret := d.getSecret(c, id) c.Assert(secret.Spec.Name, checker.Equals, testName) - - testName = "test_secret_2" - out, err = d.Cmd("secret", "create", testName, "-f", testFile.Name()) - c.Assert(err, checker.IsNil) - c.Assert(strings.TrimSpace(out), checker.Not(checker.Equals), "", check.Commentf(out)) - - id = strings.TrimSpace(out) - secret = d.getSecret(c, id) - c.Assert(secret.Spec.Name, checker.Equals, testName) } From f2260228a7fc904e64a36c390e1883a58a0eb582 Mon Sep 17 00:00:00 2001 From: Aaron Lehmann Date: Thu, 5 Jan 2017 14:19:08 -0800 Subject: [PATCH 7/8] vendor: Unfork logrus dependency Vendor the latest official logrus release instead of a custom fork (which now happens to be identical to the fork). Signed-off-by: Aaron Lehmann (cherry picked from commit 11df2db538fbc7a6181c591b6ec47db9f96a87e4) Signed-off-by: Victor Vieux --- vendor.conf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/vendor.conf b/vendor.conf index 09a6715458..1bb642a063 100644 --- a/vendor.conf +++ b/vendor.conf @@ -2,7 +2,7 @@ github.com/Azure/go-ansiterm 388960b655244e76e24c75f48631564eaefade62 github.com/Microsoft/hcsshim v0.5.9 github.com/Microsoft/go-winio v0.3.7 -github.com/Sirupsen/logrus f76d643702a30fbffecdfe50831e11881c96ceb3 https://github.com/aaronlehmann/logrus +github.com/Sirupsen/logrus v0.11.0 github.com/davecgh/go-spew 6d212800a42e8ab5c146b8ace3490ee17e5225f9 github.com/docker/libtrust 9cbd2a1374f46905c68a4eb3694a130610adc62a github.com/go-check/check 4ed411733c5785b40214c70bce814c3a3a689609 https://github.com/cpuguy83/check.git From 46af2edec22b27a0c4e24cb4455e6327708ce18b Mon Sep 17 00:00:00 2001 From: Sebastiaan van Stijn Date: Mon, 9 Jan 2017 15:05:49 +0100 Subject: [PATCH 8/8] un-fork go-memdb commit 9322636c8926f155a10d9679e364e3f8e86203d6 temporarily switched to a fork of go-memdb, because a pull request that was needed was not yet merged upstream. this pull request was merged, so we can un-fork this dependency. this change does not bump the dependency, and only un-forks. bumping the dependency should be done in a separate change, if needed. Signed-off-by: Sebastiaan van Stijn (cherry picked from commit 5f057f6350364d93b5e32ad205a492f399ce1cd3) Signed-off-by: Victor Vieux --- vendor.conf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/vendor.conf b/vendor.conf index 1bb642a063..ff40457fd7 100644 --- a/vendor.conf +++ b/vendor.conf @@ -108,7 +108,7 @@ github.com/google/certificate-transparency d90e65c3a07988180c5b1ece71791c0b65068 golang.org/x/crypto 3fbbcd23f1cb824e69491a5930cfeff09b12f4d2 golang.org/x/time a4bde12657593d5e90d0533a3e4fd95e635124cb github.com/mreiferson/go-httpclient 63fe23f7434723dc904c901043af07931f293c47 -github.com/hashicorp/go-memdb 608dda3b1410a73eaf3ac8b517c9ae7ebab6aa87 https://github.com/floridoo/go-memdb +github.com/hashicorp/go-memdb 608dda3b1410a73eaf3ac8b517c9ae7ebab6aa87 github.com/hashicorp/go-immutable-radix 8e8ed81f8f0bf1bdd829593fdd5c29922c1ea990 github.com/hashicorp/golang-lru a0d98a5f288019575c6d1f4bb1573fef2d1fcdc4 github.com/coreos/pkg fa29b1d70f0beaddd4c7021607cc3c3be8ce94b8