Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package docker for openSUSE:Factory checked 
in at 2021-03-10 08:46:22
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/docker (Old)
 and      /work/SRC/openSUSE:Factory/.docker.new.2378 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "docker"

Wed Mar 10 08:46:22 2021 rev:111 rq:876333 version:20.10.5_ce

Changes:
--------
--- /work/SRC/openSUSE:Factory/docker/docker.changes    2021-02-16 
22:41:32.622042551 +0100
+++ /work/SRC/openSUSE:Factory/.docker.new.2378/docker.changes  2021-03-10 
08:46:24.830217561 +0100
@@ -1,0 +2,16 @@
+Wed Mar  3 00:49:58 UTC 2021 - Aleksa Sarai <asa...@suse.com>
+
+- Update to Docker 20.10.5-ce. See upstream changelog in the packaged
+  /usr/share/doc/packages/docker/CHANGELOG.md. bsc#1182947
+- Update runc dependency to 1.0.0~rc93.
+- Remove upstreamed patches:
+  - cli-0001-Rename-bin-md2man-to-bin-go-md2man.patch
+- Rebase patches:
+  * 0001-SECRETS-daemon-allow-directory-creation-in-run-secre.patch
+  * 0002-SECRETS-SUSE-implement-SUSE-container-secrets.patch
+  * 0003-PRIVATE-REGISTRY-add-private-registry-mirror-support.patch
+  * 0004-bsc1073877-apparmor-clobber-docker-default-profile-o.patch
+- Switch version to use -ce suffix rather than _ce to avoid confusing other
+  tools. boo#1182476
+
+-------------------------------------------------------------------

Old:
----
  cli-0001-Rename-bin-md2man-to-bin-go-md2man.patch
  docker-20.10.3_ce_46229ca1d815.tar.xz
  docker-cli-20.10.3_ce.tar.xz

New:
----
  docker-20.10.5_ce_363e9a88a11b.tar.xz
  docker-cli-20.10.5_ce.tar.xz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ docker.spec ++++++
--- /var/tmp/diff_new_pack.2eZUSf/_old  2021-03-10 08:46:25.690218448 +0100
+++ /var/tmp/diff_new_pack.2eZUSf/_new  2021-03-10 08:46:25.694218453 +0100
@@ -42,8 +42,8 @@
 # helpfully injects into our build environment from the changelog). If you want
 # to generate a new git_commit_epoch, use this:
 #  $ date --date="$(git show --format=fuller --date=iso $COMMIT_ID | grep -oP 
'(?<=^CommitDate: ).*')" '+%s'
-%define git_version 46229ca1d815
-%define git_commit_epoch 1611869592
+%define git_version 363e9a88a11b
+%define git_commit_epoch 1614234438
 
 # We require a specific pin of libnetwork because it doesn't really do
 # versioning and minor version mismatches in libnetwork can break Docker
@@ -56,7 +56,10 @@
 %define proxy_builddir %{dist_builddir}/src/github.com/docker/libnetwork
 
 Name:           %{realname}%{name_suffix}
-Version:        20.10.3_ce
+Version:        20.10.5_ce
+# This "nice version" is so that docker --version gives a result that can be
+# parsed by other people. boo#1182476
+%define nice_version 20.10.5-ce
 Release:        0
 Summary:        The Moby-project Linux container runtime
 License:        Apache-2.0
@@ -89,8 +92,6 @@
 Patch200:       0003-PRIVATE-REGISTRY-add-private-registry-mirror-support.patch
 # SUSE-BACKPORT: Backport of https://github.com/docker/docker/pull/37353. 
bsc#1073877 bsc#1099277
 Patch300:       0004-bsc1073877-apparmor-clobber-docker-default-profile-o.patch
-# SUSE-BACKPORT: Backport of https://github.com/docker/cli/pull/2888.
-Patch301:       cli-0001-Rename-bin-md2man-to-bin-go-md2man.patch
 BuildRequires:  audit
 BuildRequires:  bash-completion
 BuildRequires:  ca-certificates
@@ -117,7 +118,7 @@
 Provides:       docker-libnetwork%{name_suffix} = 0.7.0.2.%{version}
 # Required to actually run containers. We require the minimum version that is
 # pinned by Docker, but in order to avoid headaches we allow for updates.
-Requires:       runc >= 1.0.0~rc92
+Requires:       runc >= 1.0.0~rc93
 Requires:       containerd >= 1.4.3
 # Needed for --init support. We don't use "tini", we use our own implementation
 # which handles edge-cases better.
@@ -264,8 +265,6 @@
 mkdir -p %{cli_builddir}
 pushd %{cli_builddir}
 xz -dc %{SOURCE1} | tar -xof - --strip-components=1
-# https://github.com/docker/cli/pull/2888
-%patch301 -p1
 popd
 
 # Extract the docker-libnetwork source in a subdir.
@@ -297,7 +296,7 @@
 # Specify all of the versioning information. We use SOURCE_DATE_EPOCH if it's
 # been injected by rpmbuild, otherwise we use the hardcoded git_commit_epoch
 # generated above. boo#1064781
-export VERSION="$(cat ./VERSION 2>/dev/null || echo '%{version}')"
+export VERSION="%{nice_version}"
 export DOCKER_GITCOMMIT="%{git_version}"
 export GITCOMMIT="%{git_version}"
 export SOURCE_DATE_EPOCH="${SOURCE_DATE_EPOCH:-%{git_commit_epoch}}"

++++++ 0001-SECRETS-daemon-allow-directory-creation-in-run-secre.patch ++++++
--- /var/tmp/diff_new_pack.2eZUSf/_old  2021-03-10 08:46:25.714218473 +0100
+++ /var/tmp/diff_new_pack.2eZUSf/_new  2021-03-10 08:46:25.714218473 +0100
@@ -1,4 +1,4 @@
-From 1edf7a140c843cc6db85cdea298db19fee316dcb Mon Sep 17 00:00:00 2001
+From 6a5d238a42b8adc5d29bbd9bd688aa1034f5cdfd Mon Sep 17 00:00:00 2001
 From: Aleksa Sarai <asa...@suse.de>
 Date: Wed, 8 Mar 2017 12:41:54 +1100
 Subject: [PATCH 1/4] SECRETS: daemon: allow directory creation in /run/secrets
@@ -70,5 +70,5 @@
                        return errors.Wrap(err, "error setting ownership for 
secret")
                }
 -- 
-2.30.0
+2.30.1
 

++++++ 0002-SECRETS-SUSE-implement-SUSE-container-secrets.patch ++++++
--- /var/tmp/diff_new_pack.2eZUSf/_old  2021-03-10 08:46:25.734218493 +0100
+++ /var/tmp/diff_new_pack.2eZUSf/_new  2021-03-10 08:46:25.734218493 +0100
@@ -1,4 +1,4 @@
-From eaedebbcf735732c00e565ff6077f4374cc87519 Mon Sep 17 00:00:00 2001
+From bf083a6f80b204325673732944b53a447f9e4171 Mon Sep 17 00:00:00 2001
 From: Aleksa Sarai <asa...@suse.de>
 Date: Wed, 8 Mar 2017 11:43:29 +1100
 Subject: [PATCH 2/4] SECRETS: SUSE: implement SUSE container secrets
@@ -451,5 +451,5 @@
 +      return nil
 +}
 -- 
-2.30.0
+2.30.1
 

++++++ 0003-PRIVATE-REGISTRY-add-private-registry-mirror-support.patch ++++++
--- /var/tmp/diff_new_pack.2eZUSf/_old  2021-03-10 08:46:25.750218510 +0100
+++ /var/tmp/diff_new_pack.2eZUSf/_new  2021-03-10 08:46:25.754218514 +0100
@@ -1,4 +1,4 @@
-From aa173dd56730552524ab35d74acbe61709c732e2 Mon Sep 17 00:00:00 2001
+From 10d0381bf317221167af0930c552a8b27c7861a4 Mon Sep 17 00:00:00 2001
 From: Valentin Rothberg <vrothb...@suse.com>
 Date: Mon, 2 Jul 2018 13:37:34 +0200
 Subject: [PATCH 3/4] PRIVATE-REGISTRY: add private-registry mirror support
@@ -1142,5 +1142,5 @@
  
        endpoints = []APIEndpoint{
 -- 
-2.30.0
+2.30.1
 

++++++ 0004-bsc1073877-apparmor-clobber-docker-default-profile-o.patch ++++++
--- /var/tmp/diff_new_pack.2eZUSf/_old  2021-03-10 08:46:25.766218526 +0100
+++ /var/tmp/diff_new_pack.2eZUSf/_new  2021-03-10 08:46:25.766218526 +0100
@@ -1,4 +1,4 @@
-From eb4e0b351b4bb229bfd5fd3ed57d3c35040265e0 Mon Sep 17 00:00:00 2001
+From 8cf5f05b8bcb5588bec92d5732e81f26fa632fce Mon Sep 17 00:00:00 2001
 From: Aleksa Sarai <asa...@suse.de>
 Date: Fri, 29 Jun 2018 17:59:30 +1000
 Subject: [PATCH 4/4] bsc1073877: apparmor: clobber docker-default profile on
@@ -69,7 +69,7 @@
        return nil
  }
 diff --git a/daemon/daemon.go b/daemon/daemon.go
-index 794ff9712d08..f9e727b348c5 100644
+index 3d8cca288010..62d3859cff8c 100644
 --- a/daemon/daemon.go
 +++ b/daemon/daemon.go
 @@ -855,8 +855,9 @@ func NewDaemon(ctx context.Context, config *config.Config, 
pluginStore *plugin.S
@@ -85,5 +85,5 @@
        }
  
 -- 
-2.30.0
+2.30.1
 

++++++ _service ++++++
--- /var/tmp/diff_new_pack.2eZUSf/_old  2021-03-10 08:46:25.830218593 +0100
+++ /var/tmp/diff_new_pack.2eZUSf/_new  2021-03-10 08:46:25.830218593 +0100
@@ -3,16 +3,16 @@
     <param name="url">https://github.com/moby/moby.git</param>
     <param name="scm">git</param>
     <param name="exclude">.git</param>
-    <param name="versionformat">20.10.3_ce_%h</param>
-    <param name="revision">v20.10.3</param>
+    <param name="versionformat">20.10.5_ce_%h</param>
+    <param name="revision">v20.10.5</param>
     <param name="filename">docker</param>
   </service>
   <service name="tar_scm" mode="disabled">
     <param name="url">https://github.com/docker/cli.git</param>
     <param name="scm">git</param>
     <param name="exclude">.git</param>
-    <param name="versionformat">20.10.3_ce</param>
-    <param name="revision">v20.10.3</param>
+    <param name="versionformat">20.10.5_ce</param>
+    <param name="revision">v20.10.5</param>
     <param name="filename">docker-cli</param>
   </service>
   <service name="tar_scm" mode="disabled">

++++++ docker-20.10.3_ce_46229ca1d815.tar.xz -> 
docker-20.10.5_ce_363e9a88a11b.tar.xz ++++++
/work/SRC/openSUSE:Factory/docker/docker-20.10.3_ce_46229ca1d815.tar.xz 
/work/SRC/openSUSE:Factory/.docker.new.2378/docker-20.10.5_ce_363e9a88a11b.tar.xz
 differ: char 15, line 1

++++++ docker-cli-20.10.3_ce.tar.xz -> docker-cli-20.10.5_ce.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/docker-cli-20.10.3_ce/cli/command/image/build_buildkit.go 
new/docker-cli-20.10.5_ce/cli/command/image/build_buildkit.go
--- old/docker-cli-20.10.3_ce/cli/command/image/build_buildkit.go       
2021-01-28 23:27:59.000000000 +0100
+++ new/docker-cli-20.10.5_ce/cli/command/image/build_buildkit.go       
2021-03-02 18:58:58.000000000 +0100
@@ -78,7 +78,7 @@
                if options.dockerfileFromStdin() {
                        return errStdinConflict
                }
-               rc, isArchive, err := build.DetectArchiveReader(os.Stdin)
+               rc, isArchive, err := build.DetectArchiveReader(dockerCli.In())
                if err != nil {
                        return err
                }
@@ -98,7 +98,7 @@
        case isLocalDir(options.context):
                contextDir = options.context
                if options.dockerfileFromStdin() {
-                       dockerfileReader = os.Stdin
+                       dockerfileReader = dockerCli.In()
                } else if options.dockerfileName != "" {
                        dockerfileName = filepath.Base(options.dockerfileName)
                        dockerfileDir = filepath.Dir(options.dockerfileName)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/docker-cli-20.10.3_ce/cli/command/registry/login.go 
new/docker-cli-20.10.5_ce/cli/command/registry/login.go
--- old/docker-cli-20.10.3_ce/cli/command/registry/login.go     2021-01-28 
23:27:59.000000000 +0100
+++ new/docker-cli-20.10.5_ce/cli/command/registry/login.go     2021-03-02 
18:58:58.000000000 +0100
@@ -111,11 +111,12 @@
                serverAddress = authServer
        }
 
-       var err error
-       var authConfig *types.AuthConfig
        var response registrytypes.AuthenticateOKBody
        isDefaultRegistry := serverAddress == authServer
-       authConfig, err = command.GetDefaultAuthConfig(dockerCli, opts.user == 
"" && opts.password == "", serverAddress, isDefaultRegistry)
+       authConfig, err := command.GetDefaultAuthConfig(dockerCli, opts.user == 
"" && opts.password == "", serverAddress, isDefaultRegistry)
+       if authConfig == nil {
+               authConfig = &types.AuthConfig{}
+       }
        if err == nil && authConfig.Username != "" && authConfig.Password != "" 
{
                response, err = loginWithCredStoreCreds(ctx, dockerCli, 
authConfig)
        }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/docker-cli-20.10.3_ce/cli/command/registry.go 
new/docker-cli-20.10.5_ce/cli/command/registry.go
--- old/docker-cli-20.10.3_ce/cli/command/registry.go   2021-01-28 
23:27:59.000000000 +0100
+++ new/docker-cli-20.10.5_ce/cli/command/registry.go   2021-03-02 
18:58:58.000000000 +0100
@@ -63,6 +63,9 @@
                indexServer := registry.GetAuthConfigKey(index)
                isDefaultRegistry := indexServer == 
ElectAuthServer(context.Background(), cli)
                authConfig, err := GetDefaultAuthConfig(cli, true, indexServer, 
isDefaultRegistry)
+               if authConfig == nil {
+                       authConfig = &types.AuthConfig{}
+               }
                if err != nil {
                        fmt.Fprintf(cli.Err(), "Unable to retrieve stored 
credentials for %s, error: %s.\n", indexServer, err)
                }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/docker-cli-20.10.3_ce/cli/command/service/opts.go 
new/docker-cli-20.10.5_ce/cli/command/service/opts.go
--- old/docker-cli-20.10.3_ce/cli/command/service/opts.go       2021-01-28 
23:27:59.000000000 +0100
+++ new/docker-cli-20.10.5_ce/cli/command/service/opts.go       2021-03-02 
18:58:58.000000000 +0100
@@ -165,7 +165,7 @@
 }
 
 func (opts updateOptions) updateConfig(flags *pflag.FlagSet) 
*swarm.UpdateConfig {
-       if !anyChanged(flags, flagUpdateParallelism, flagUpdateDelay, 
flagUpdateMonitor, flagUpdateFailureAction, flagUpdateMaxFailureRatio) {
+       if !anyChanged(flags, flagUpdateParallelism, flagUpdateDelay, 
flagUpdateMonitor, flagUpdateFailureAction, flagUpdateMaxFailureRatio, 
flagUpdateOrder) {
                return nil
        }
 
@@ -194,7 +194,7 @@
 }
 
 func (opts updateOptions) rollbackConfig(flags *pflag.FlagSet) 
*swarm.UpdateConfig {
-       if !anyChanged(flags, flagRollbackParallelism, flagRollbackDelay, 
flagRollbackMonitor, flagRollbackFailureAction, flagRollbackMaxFailureRatio) {
+       if !anyChanged(flags, flagRollbackParallelism, flagRollbackDelay, 
flagRollbackMonitor, flagRollbackFailureAction, flagRollbackMaxFailureRatio, 
flagRollbackOrder) {
                return nil
        }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/docker-cli-20.10.3_ce/cli/command/service/opts_test.go 
new/docker-cli-20.10.5_ce/cli/command/service/opts_test.go
--- old/docker-cli-20.10.3_ce/cli/command/service/opts_test.go  2021-01-28 
23:27:59.000000000 +0100
+++ new/docker-cli-20.10.5_ce/cli/command/service/opts_test.go  2021-03-02 
18:58:58.000000000 +0100
@@ -289,6 +289,22 @@
        assert.Check(t, is.DeepEqual(service.RollbackConfig, 
expected.RollbackConfig))
 }
 
+func TestToServiceUpdateRollbackOrder(t *testing.T) {
+       flags := newCreateCommand(nil).Flags()
+       flags.Set("update-order", "start-first")
+       flags.Set("rollback-order", "start-first")
+
+       o := newServiceOptions()
+       o.mode = "replicated"
+       o.update = updateOptions{order: "start-first"}
+       o.rollback = updateOptions{order: "start-first"}
+
+       service, err := o.ToService(context.Background(), &fakeClient{}, flags)
+       assert.NilError(t, err)
+       assert.Check(t, is.Equal(service.UpdateConfig.Order, o.update.order))
+       assert.Check(t, is.Equal(service.RollbackConfig.Order, 
o.rollback.order))
+}
+
 func TestToServiceMaxReplicasGlobalModeConflict(t *testing.T) {
        opt := serviceOptions{
                mode:        "global",
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/docker-cli-20.10.3_ce/cli/command/service/progress/progress.go 
new/docker-cli-20.10.5_ce/cli/command/service/progress/progress.go
--- old/docker-cli-20.10.3_ce/cli/command/service/progress/progress.go  
2021-01-28 23:27:59.000000000 +0100
+++ new/docker-cli-20.10.5_ce/cli/command/service/progress/progress.go  
2021-03-02 18:58:58.000000000 +0100
@@ -99,6 +99,7 @@
                convergedAt time.Time
                monitor     = 5 * time.Second
                rollback    bool
+               message     *progress.Progress
        )
 
        for {
@@ -140,8 +141,9 @@
                                return fmt.Errorf("service rollback paused: 
%s", service.UpdateStatus.Message)
                        case swarm.UpdateStateRollbackCompleted:
                                if !converged {
-                                       return fmt.Errorf("service rolled back: 
%s", service.UpdateStatus.Message)
+                                       message = &progress.Progress{ID: 
"rollback", Message: service.UpdateStatus.Message}
                                }
+                               rollback = true
                        }
                }
                if converged && time.Since(convergedAt) >= monitor {
@@ -149,7 +151,9 @@
                                ID:     "verify",
                                Action: "Service converged",
                        })
-
+                       if message != nil {
+                               progressOut.WriteProgress(*message)
+                       }
                        return nil
                }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/docker-cli-20.10.3_ce/cli/config/config.go 
new/docker-cli-20.10.5_ce/cli/config/config.go
--- old/docker-cli-20.10.3_ce/cli/config/config.go      2021-01-28 
23:27:59.000000000 +0100
+++ new/docker-cli-20.10.5_ce/cli/config/config.go      2021-03-02 
18:58:58.000000000 +0100
@@ -26,15 +26,29 @@
 var (
        initConfigDir sync.Once
        configDir     string
+       homeDir       string
 )
 
+// resetHomeDir is used in testing to resets the "homeDir" package variable to
+// force re-lookup of the home directory between tests.
+func resetHomeDir() {
+       homeDir = ""
+}
+
+func getHomeDir() string {
+       if homeDir == "" {
+               homeDir = homedir.Get()
+       }
+       return homeDir
+}
+
 func setConfigDir() {
        if configDir != "" {
                return
        }
        configDir = os.Getenv("DOCKER_CONFIG")
        if configDir == "" {
-               configDir = filepath.Join(homedir.Get(), configFileDir)
+               configDir = filepath.Join(getHomeDir(), configFileDir)
        }
 }
 
@@ -109,11 +123,7 @@
        }
 
        // Can't find latest config file so check for the old one
-       home, err := os.UserHomeDir()
-       if err != nil {
-               return configFile, errors.Wrap(err, oldConfigfile)
-       }
-       filename = filepath.Join(home, oldConfigfile)
+       filename = filepath.Join(getHomeDir(), oldConfigfile)
        if file, err := os.Open(filename); err == nil {
                defer file.Close()
                if err := configFile.LegacyLoadFromReader(file); err != nil {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/docker-cli-20.10.3_ce/cli/config/config_test.go 
new/docker-cli-20.10.5_ce/cli/config/config_test.go
--- old/docker-cli-20.10.3_ce/cli/config/config_test.go 2021-01-28 
23:27:59.000000000 +0100
+++ new/docker-cli-20.10.5_ce/cli/config/config_test.go 2021-03-02 
18:58:58.000000000 +0100
@@ -115,6 +115,7 @@
 email`: "Invalid auth configuration file",
        }
 
+       resetHomeDir()
        tmpHome, err := ioutil.TempDir("", "config-test")
        assert.NilError(t, err)
        defer os.RemoveAll(tmpHome)
@@ -131,6 +132,7 @@
 }
 
 func TestOldValidAuth(t *testing.T) {
+       resetHomeDir()
        tmpHome, err := ioutil.TempDir("", "config-test")
        assert.NilError(t, err)
        defer os.RemoveAll(tmpHome)
@@ -165,6 +167,7 @@
 }
 
 func TestOldJSONInvalid(t *testing.T) {
+       resetHomeDir()
        tmpHome, err := ioutil.TempDir("", "config-test")
        assert.NilError(t, err)
        defer os.RemoveAll(tmpHome)
@@ -184,6 +187,7 @@
 }
 
 func TestOldJSON(t *testing.T) {
+       resetHomeDir()
        tmpHome, err := ioutil.TempDir("", "config-test")
        assert.NilError(t, err)
        defer os.RemoveAll(tmpHome)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/docker-cli-20.10.3_ce/contrib/completion/bash/docker 
new/docker-cli-20.10.5_ce/contrib/completion/bash/docker
--- old/docker-cli-20.10.3_ce/contrib/completion/bash/docker    2021-01-28 
23:27:59.000000000 +0100
+++ new/docker-cli-20.10.5_ce/contrib/completion/bash/docker    2021-03-02 
18:58:58.000000000 +0100
@@ -935,7 +935,7 @@
        # awslogs does not implement the $common_options2.
        local awslogs_options="$common_options1 awslogs-create-group 
awslogs-credentials-endpoint awslogs-datetime-format awslogs-group 
awslogs-multiline-pattern awslogs-region awslogs-stream tag"
 
-       local fluentd_options="$common_options1 $common_options2 
fluentd-address fluentd-async-connect fluentd-buffer-limit fluentd-retry-wait 
fluentd-max-retries fluentd-sub-second-precision tag"
+       local fluentd_options="$common_options1 $common_options2 
fluentd-address fluentd-async fluentd-buffer-limit fluentd-request-ack 
fluentd-retry-wait fluentd-max-retries fluentd-sub-second-precision tag"
        local gcplogs_options="$common_options1 $common_options2 gcp-log-cmd 
gcp-meta-id gcp-meta-name gcp-meta-zone gcp-project"
        local gelf_options="$common_options1 $common_options2 gelf-address 
gelf-compression-level gelf-compression-type gelf-tcp-max-reconnect 
gelf-tcp-reconnect-delay tag"
        local journald_options="$common_options1 $common_options2 tag"
@@ -1955,6 +1955,7 @@
                --pid
                --pids-limit
                --publish -p
+               --pull
                --restart
                --runtime
                --security-opt
@@ -2153,6 +2154,10 @@
                        esac
                        return
                        ;;
+               --pull)
+                 COMPREPLY=( $( compgen -W 'always missing never' -- "$cur" ) )
+                 return
+                 ;;
                --runtime)
                        __docker_complete_runtimes
                        return
@@ -2548,6 +2553,7 @@
                --ip-forward=false
                --ip-masq=false
                --iptables=false
+               --ip6tables
                --ipv6
                --live-restore
                --no-new-privileges
@@ -3601,7 +3607,7 @@
                        return
                        ;;
                mode)
-                       COMPREPLY=( $( compgen -W "global replicated" -- 
"${cur##*=}" ) )
+                       COMPREPLY=( $( compgen -W "global global-job replicated 
replicated-job" -- "${cur##*=}" ) )
                        return
                        ;;
                name)
@@ -3731,6 +3737,7 @@
                --limit-pids
                --log-driver
                --log-opt
+               --max-replicas
                --replicas
                --replicas-max-per-node
                --reserve-cpu
@@ -3804,7 +3811,7 @@
                                return
                                ;;
                        --mode)
-                               COMPREPLY=( $( compgen -W "global replicated" 
-- "$cur" ) )
+                               COMPREPLY=( $( compgen -W "global global-job 
replicated replicated-job" -- "$cur" ) )
                                return
                                ;;
                esac
@@ -4348,6 +4355,9 @@
                        __docker_complete_nodes --cur "${cur##*=}" --id
                        return
                        ;;
+               label|node.label)
+                       return
+                       ;;
                membership)
                        COMPREPLY=( $( compgen -W "accepted pending" -- 
"${cur##*=}" ) )
                        return
@@ -4364,7 +4374,7 @@
 
        case "$prev" in
                --filter|-f)
-                       COMPREPLY=( $( compgen -W "id label membership name 
role" -S = -- "$cur" ) )
+                       COMPREPLY=( $( compgen -W "id label membership name 
node.label role" -S = -- "$cur" ) )
                        __docker_nospace
                        return
                        ;;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/docker-cli-20.10.3_ce/contrib/completion/zsh/_docker 
new/docker-cli-20.10.5_ce/contrib/completion/zsh/_docker
--- old/docker-cli-20.10.3_ce/contrib/completion/zsh/_docker    2021-01-28 
23:27:59.000000000 +0100
+++ new/docker-cli-20.10.5_ce/contrib/completion/zsh/_docker    2021-03-02 
18:58:58.000000000 +0100
@@ -1343,7 +1343,7 @@
                 ;;
         esac
     else
-        opts=('id' 'label' 'membership' 'name' 'role')
+        opts=('id' 'label' 'membership' 'name' 'node.label' 'role')
         _describe -t filter-opts "filter options" opts -qS "=" && ret=0
     fi
 
@@ -2544,6 +2544,82 @@
 
 # EO volume
 
+# BO context
+
+__docker_complete_contexts() {
+    [[ $PREFIX = -* ]] && return 1
+    integer ret=1
+    declare -a contexts
+
+    contexts=(${(f)${:-"$(_call_program commands docker $docker_options 
context ls -q)"$'\n'}})
+
+    _describe -t context-list "context" contexts && ret=0
+    return ret
+}
+
+__docker_context_commands() {
+    local -a _docker_context_subcommands
+    _docker_context_subcommands=(
+        "create:Create new context"
+        "inspect:Display detailed information on one or more contexts"
+        "list:List available contexts"
+        "rm:Remove one or more contexts"
+        "show:Print the current context"
+        "update:Update a context"
+        "use:Set the default context"
+    )
+    _describe -t docker-context-commands "docker context command" 
_docker_context_subcommands
+}
+
+__docker_context_subcommand() {
+    local -a _command_args opts_help
+    local expl help="--help"
+    integer ret=1
+
+    opts_help=("(: -)--help[Print usage]")
+
+    case "$words[1]" in
+        (create)
+            _arguments $(__docker_arguments) \
+                $opts_help \
+                "($help)--default-stack-orchestrator=[Default orchestrator for 
stack operations to use with this context]:default-stack-orchestrator:(swarm 
kubernetes all)" \
+                "($help)--description=[Description of the 
context]:description:" \
+                "($help)--docker=[Set the docker endpoint]:docker:" \
+                "($help)--kubernetes=[Set the kubernetes 
endpoint]:kubernetes:" \
+                "($help)--from=[Create context from a named 
context]:from:__docker_complete_contexts" \
+                "($help -):name: " && ret=0
+            ;;
+        (use)
+            _arguments $(__docker_arguments) \
+                $opts_help \
+                "($help -)1:context:__docker_complete_contexts" && ret=0
+            ;;
+        (inspect)
+            _arguments $(__docker_arguments) \
+                $opts_help \
+                "($help -)1:context:__docker_complete_contexts" && ret=0
+            ;;
+        (rm)
+            _arguments $(__docker_arguments) \
+                $opts_help \
+                "($help -)1:context:__docker_complete_contexts" && ret=0
+            ;;
+        (update)
+            _arguments $(__docker_arguments) \
+                $opts_help \
+                "($help)--default-stack-orchestrator=[Default orchestrator for 
stack operations to use with this context]:default-stack-orchestrator:(swarm 
kubernetes all)" \
+                "($help)--description=[Description of the 
context]:description:" \
+                "($help)--docker=[Set the docker endpoint]:docker:" \
+                "($help)--kubernetes=[Set the kubernetes 
endpoint]:kubernetes:" \
+                "($help -):name:" && ret=0
+            ;;
+    esac
+
+    return ret
+}
+
+# EO context
+
 __docker_caching_policy() {
   oldp=( "$1"(Nmh+1) )     # 1 hour
   (( $#oldp ))
@@ -2631,6 +2707,23 @@
                     ;;
             esac
             ;;
+        (context)
+            local curcontext="$curcontext" state
+            _arguments $(__docker_arguments) \
+                $opts_help \
+                "($help -): :->command" \
+                "($help -)*:: :->option-or-argument" && ret=0
+
+            case $state in
+                (command)
+                    __docker_context_commands && ret=0
+                    ;;
+                (option-or-argument)
+                    curcontext=${curcontext%:*:*}:docker-${words[-1]}:
+                    __docker_context_subcommand && ret=0
+                    ;;
+            esac
+            ;;
         (daemon)
             _arguments $(__docker_arguments) \
                 $opts_help \
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/docker-cli-20.10.3_ce/docs/deprecated.md 
new/docker-cli-20.10.5_ce/docs/deprecated.md
--- old/docker-cli-20.10.3_ce/docs/deprecated.md        2021-01-28 
23:27:59.000000000 +0100
+++ new/docker-cli-20.10.5_ce/docs/deprecated.md        2021-03-02 
18:58:58.000000000 +0100
@@ -52,6 +52,7 @@
 
-----------|------------------------------------------------------------------------------------------------------------------------------------|------------|------------
 Deprecated | [Pulling images from non-compliant image 
registries](#pulling-images-from-non-compliant-image-registries)                
          | v20.10     | -
 Deprecated | [Linux containers on Windows 
(LCOW)](#linux-containers-on-windows-lcow-experimental)                         
                      | v20.10     | -
+Deprecated | [BLKIO weight options with cgroups 
v1](#blkio-weight-options???with-cgroups-v1)                                    
                  | v20.10     | -
 Deprecated | [Kernel memory limit](#kernel-memory-limit)                       
                                                                 | v20.10     | 
-
 Deprecated | [Classic Swarm and overlay networks using external key/value 
stores](#classic-swarm-and-overlay-networks-using-cluster-store)      | v20.10  
   | -
 Deprecated | [Support for the legacy `~/.dockercfg` configuration file for 
authentication](#support-for-legacy-dockercfg-configuration-files)   | v20.10   
  | -
@@ -140,6 +141,16 @@
 Developers who want to run Linux workloads on a Windows host are encouraged to 
use
 [Docker Desktop with WSL2](https://docs.docker.com/docker-for-windows/wsl/) 
instead.
 
+### BLKIO weight options with cgroups v1
+
+**Deprecated in Release: v20.10**
+
+Specifying blkio weight (`docker run --blkio-weight` and `docker run 
--blkio-weight-device`)
+is now marked as deprecated when using cgroups v1 because the corresponding 
features
+were [removed in Linux kernel v5.0 and 
up](https://github.com/torvalds/linux/commit/f382fb0bcef4c37dc049e9f6963e3baf204d815c).
+When using cgroups v2, the `--blkio-weight` options are implemented using
+[`io.weight](https://github.com/torvalds/linux/blob/v5.0/Documentation/admin-guide/cgroup-v2.rst#io).
+
 ### Kernel memory limit
 
 **Deprecated in Release: v20.10**
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/docker-cli-20.10.3_ce/docs/reference/commandline/node_ls.md 
new/docker-cli-20.10.5_ce/docs/reference/commandline/node_ls.md
--- old/docker-cli-20.10.3_ce/docs/reference/commandline/node_ls.md     
2021-01-28 23:27:59.000000000 +0100
+++ new/docker-cli-20.10.5_ce/docs/reference/commandline/node_ls.md     
2021-03-02 18:58:58.000000000 +0100
@@ -60,6 +60,7 @@
 
 * [id](#id)
 * [label](#label)
+* [node.label](#nodelabel)
 * [membership](#membership)
 * [name](#name)
 * [role](#role)
@@ -77,7 +78,10 @@
 
 #### label
 
-The `label` filter matches nodes based on engine labels and on the presence of 
a `label` alone or a `label` and a value. Node labels are currently not used 
for filtering.
+The `label` filter matches nodes based on engine labels and on the presence of 
a
+`label` alone or a `label` and a value. Engine labels are configured in
+the [daemon configuration](dockerd.md#daemon-configuration-file). To filter on
+Swarm `node` labels, use [`node.label` instead](#nodelabel).
 
 The following filter matches nodes with the `foo` label regardless of its 
value.
 
@@ -88,6 +92,42 @@
 1bcef6utixb0l0ca7gxuivsj0  swarm-worker2  Ready   Active
 ```
 
+#### node.label
+
+The `node.label` filter matches nodes based on node labels and on the presence
+of a `node.label` alone or a `node.label` and a value.
+
+The following filter updates nodes to have a `region` node label:
+
+```console
+$ docker node update --label-add region=region-a swarm-test-01
+$ docker node update --label-add region=region-a swarm-test-02
+$ docker node update --label-add region=region-b swarm-test-03
+$ docker node update --label-add region=region-b swarm-test-04
+```
+
+Show all nodes that have a `region` node label set:
+
+```console
+$ docker node ls --filter node.label=region
+
+ID                            HOSTNAME        STATUS    AVAILABILITY   MANAGER 
STATUS   ENGINE VERSION
+yg550ettvsjn6g6t840iaiwgb *   swarm-test-01   Ready     Active         Leader  
         20.10.2
+2lm9w9kbepgvkzkkeyku40e65     swarm-test-02   Ready     Active         
Reachable        20.10.2
+hc0pu7ntc7s4uvj4pv7z7pz15     swarm-test-03   Ready     Active         
Reachable        20.10.2
+n41b2cijmhifxxvz56vwrs12q     swarm-test-04   Ready     Active                 
         20.10.2
+```
+
+Show all nodes that have a `region` node label, with value `region-a`:
+
+```console
+$ docker node ls --filter node.label=region=region-a
+
+ID                            HOSTNAME        STATUS    AVAILABILITY   MANAGER 
STATUS   ENGINE VERSION
+yg550ettvsjn6g6t840iaiwgb *   swarm-test-01   Ready     Active         Leader  
         20.10.2
+2lm9w9kbepgvkzkkeyku40e65     swarm-test-02   Ready     Active         
Reachable        20.10.2
+```
+
 #### membership
 
 The `membership` filter matches nodes based on the presence of a `membership` 
and a value
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/docker-cli-20.10.3_ce/docs/reference/commandline/push.md 
new/docker-cli-20.10.5_ce/docs/reference/commandline/push.md
--- old/docker-cli-20.10.3_ce/docs/reference/commandline/push.md        
2021-01-28 23:27:59.000000000 +0100
+++ new/docker-cli-20.10.5_ce/docs/reference/commandline/push.md        
2021-03-02 18:58:58.000000000 +0100
@@ -76,7 +76,7 @@
 
 ### Push all tags of an image
 
-Use the `-a` (or `--all-tags`) option to push To push all tags of a local 
image.
+Use the `-a` (or `--all-tags`) option to push all tags of a local image.
 
 The following example creates multiple tags for an image, and pushes all those
 tags to Docker Hub.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/docker-cli-20.10.3_ce/docs/reference/run.md 
new/docker-cli-20.10.5_ce/docs/reference/run.md
--- old/docker-cli-20.10.3_ce/docs/reference/run.md     2021-01-28 
23:27:59.000000000 +0100
+++ new/docker-cli-20.10.5_ce/docs/reference/run.md     2021-03-02 
18:58:58.000000000 +0100
@@ -1,6 +1,8 @@
 ---
 description: "Configure containers at runtime"
 keywords: "docker, run, configure, runtime"
+redirect_from:
+- /reference/run/
 ---
 
 <!-- This file is maintained within the docker/cli GitHub
@@ -1738,7 +1740,7 @@
 
 The `container-dest` must always be an absolute path such as `/src/docs`.
 The `host-src` can either be an absolute path or a `name` value. If you
-supply an absolute path for the `host-dir`, Docker bind-mounts to the path
+supply an absolute path for the `host-src`, Docker bind-mounts to the path
 you specify. If you supply a `name`, Docker creates a named volume by that 
`name`.
 
 A `name` value must start with an alphanumeric character,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/docker-cli-20.10.3_ce/man/docker-run.1.md 
new/docker-cli-20.10.5_ce/man/docker-run.1.md
--- old/docker-cli-20.10.3_ce/man/docker-run.1.md       2021-01-28 
23:27:59.000000000 +0100
+++ new/docker-cli-20.10.5_ce/man/docker-run.1.md       2021-03-02 
18:58:58.000000000 +0100
@@ -504,13 +504,13 @@
 **--network**=*type*
    Set the Network mode for the container. Supported values are:
 
-| Value                       | Description                                    
                                          |
-|:----------------------------|:-----------------------------------------------------------------------------------------|
-| **none**                    | No networking in the container.                
                                          |
-| **bridge**                  | Connect the container to the default Docker 
bridge via veth interfaces.                  |
-| **host**                    | Use the host's network stack inside the 
container.                                       |
-| **container:**_name_|_id_   | Use the network stack of another container, 
specified via its _name_ or _id_.            |
-| _network-name_|_network-id_ | Connects the container to a user created 
network (using `docker network create` command) |
+| Value                        | Description                                   
                                           |
+|:-----------------------------|:-----------------------------------------------------------------------------------------|
+| **none**                     | No networking in the container.               
                                           |
+| **bridge**                   | Connect the container to the default Docker 
bridge via veth interfaces.                  |
+| **host**                     | Use the host's network stack inside the 
container.                                       |
+| **container:**_name_\|_id_   | Use the network stack of another container, 
specified via its _name_ or _id_.            |
+| _network-name_\|_network-id_ | Connects the container to a user created 
network (using `docker network create` command) |
 
 Default is **bridge**.
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/docker-cli-20.10.3_ce/man/md2man-all.sh 
new/docker-cli-20.10.5_ce/man/md2man-all.sh
--- old/docker-cli-20.10.3_ce/man/md2man-all.sh 2021-01-28 23:27:59.000000000 
+0100
+++ new/docker-cli-20.10.5_ce/man/md2man-all.sh 2021-03-02 18:58:58.000000000 
+0100
@@ -18,5 +18,5 @@
                continue
        fi
        mkdir -p "./man${num}"
-       md2man -in "$FILE" -out "./man${num}/${name}"
+       go-md2man -in "$FILE" -out "./man${num}/${name}"
 done
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/docker-cli-20.10.3_ce/scripts/docs/generate-man.sh 
new/docker-cli-20.10.5_ce/scripts/docs/generate-man.sh
--- old/docker-cli-20.10.3_ce/scripts/docs/generate-man.sh      2021-01-28 
23:27:59.000000000 +0100
+++ new/docker-cli-20.10.5_ce/scripts/docs/generate-man.sh      2021-03-02 
18:58:58.000000000 +0100
@@ -4,9 +4,9 @@
 
 mkdir -p ./man/man1
 
-if ! command -v md2man &> /dev/null; then
+if ! command -v go-md2man &> /dev/null; then
        # yay, go install creates a binary named "v2" ??\_(???)_/??
-       go build -o "/go/bin/md2man" ./vendor/github.com/cpuguy83/go-md2man/v2
+       go build -o "/go/bin/go-md2man" 
./vendor/github.com/cpuguy83/go-md2man/v2
 fi
 
 # Generate man pages from cobra commands

Reply via email to