diff options
author | Andrei Polushin <polushin@gmail.com> | 2023-06-29 13:25:41 +0200 |
---|---|---|
committer | Carlo Sala <carlosalag@protonmail.com> | 2023-06-29 13:26:08 +0200 |
commit | 73c4764e78947864c6f067df3bec4cff02866eb2 (patch) | |
tree | 9e7abd9cf8ec403d291e1eb756df73cf139fa2e1 /plugins | |
parent | 723af07a566cbadc26e61f69c44a1a67ed1ba0c8 (diff) | |
download | zsh-73c4764e78947864c6f067df3bec4cff02866eb2.tar.gz zsh-73c4764e78947864c6f067df3bec4cff02866eb2.tar.bz2 zsh-73c4764e78947864c6f067df3bec4cff02866eb2.zip |
fix(docker): use `docker --version` instead of `docker version`
`docker version` subcommand is able to return both docker client and
docker daemon information. To get a daemon version, it connects to a
possibly remote daemon. If the remote daemon is not accessible, the
client waits for some time, until it gets interrupted by timeout.
As a result we can have a docker client running in background. When zsh
session is rather short, a terminal application (iTerm2) starts asking
if that background docker process should be stopped.
On the other hand, to get a docker client version only, we can use
`docker --version` instead. It does not connect to a daemon.
Closes #11780
Diffstat (limited to 'plugins')
-rw-r--r-- | plugins/docker/docker.plugin.zsh | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/plugins/docker/docker.plugin.zsh b/plugins/docker/docker.plugin.zsh index 434b1fc60..3abce6466 100644 --- a/plugins/docker/docker.plugin.zsh +++ b/plugins/docker/docker.plugin.zsh @@ -37,8 +37,10 @@ if (( ! $+commands[docker] )); then fi { + # docker version returns `Docker version 24.0.2, build cb74dfcd85` + # with `s:,:` remove the comma after the version, and select third word of it + local _docker_version=${${(s:,:z)"$(command docker --version)"}[3]} # `docker completion` is only available from 23.0.0 on - local _docker_version=$(command docker version --format '{{.Client.Version}}' 2>/dev/null) if is-at-least 23.0.0 $_docker_version; then # If the completion file doesn't exist yet, we need to autoload it and # bind it to `docker`. Otherwise, compinit will have already done that. |