Command-line completion

预计阅读时间:3分钟

Compose 带有 bash 和 zsh shell 的命令完成功能.

Install command completion

Bash

确保安装了 bash 补全.

Linux

  1. 在当前的 Linux 操作系统上(在非最小安装中),应该可以使用 bash 补全.

  2. 将完成脚本放在/etc/bash_completion.d/中.

    $ sudo curl \
        -L https://raw.githubusercontent.com/docker/compose/v2.5.0/contrib/completion/bash/docker-compose \
        -o /etc/bash_completion.d/docker-compose
    
  3. 重新加载您的终端. 您可以关闭然后打开一个新终端,或者在当前终端中使用source ~/.bashrc命令重新加载您的设置.

Mac

Install via Homebrew
  1. 使用brew install bash-completion .
  2. 安装后,Brew 会显示安装路径. 确保将完成脚本放在路径中.

    例如,将完成脚本放在/usr/local/etc/bash_completion.d/中.

    $ sudo curl \
        -L https://raw.githubusercontent.com/docker/compose/v2.5.0/contrib/completion/bash/docker-compose \
        -o /usr/local/etc/bash_completion.d/docker-compose
    
  3. 将以下内容添加到您的~/.bash_profile

    if [ -f $(brew --prefix)/etc/bash_completion ]; then
        . $(brew --prefix)/etc/bash_completion
    fi
    
  4. 您可以获取~/.bash_profile或启动新终端以利用完成.
Install via MacPorts
  1. 运行sudo port install bash-completion来安装 bash 补全.

  2. 将以下行添加到~/.bash_profile

    if [ -f /opt/local/etc/profile.d/bash_completion.sh ]; then
        . /opt/local/etc/profile.d/bash_completion.sh
    fi
    
  3. 您可以获取~/.bash_profile或启动新终端以利用完成.

Zsh

确保您已在计算机上安装了oh-my-zsh .

With oh-my-zsh shell

dockerdocker-compose添加到~/.zshrc中的插件列表中,以在 oh-my-zsh shell 中运行自动补全. 在以下示例中, ...表示您可能已安装的其他 Zsh 插件. 之后,键入source ~/.zshrc以进行更改. 要测试是否成功,请键入docker ps然后按Tab键.

plugins=(... docker docker-compose)

Without oh-my-zsh shell

  1. 将完成脚本放在/path/to/zsh/completion (通常是~/.zsh/completion/ ):

    $ mkdir -p ~/.zsh/completion
    $ curl \
        -L https://raw.githubusercontent.com/docker/compose/v2.5.0/contrib/completion/zsh/_docker-compose \
        -o ~/.zsh/completion/_docker-compose
    
  2. 通过添加~/.zshrc .zshrc 将目录包含在$fpath中:

    fpath=(~/.zsh/completion $fpath)
    
  3. 确保compinit已加载或通过添加~/.zshrc .zshrc 来完成:

    autoload -Uz compinit && compinit -i
    
  4. 然后重新加载你的外壳:

    $ exec $SHELL -l
    

Available completions

根据到目前为止您在命令行上键入的内容,它会完成:

  • 可用的 docker-compose 命令
  • 可用于特定命令的选项
  • 在给定上下文中有意义的服务名称,例如具有运行或停止实例的服务或基于图像的服务与基于 Dockerfile 的服务. 对于docker-compose scale ,完整的服务名称会自动附加"=".
  • 所选选项的参数. 例如, docker-compose kill -s完成一些信号,如 SIGHUP 和 SIGUSR1.

享受更快地使用 Compose 和更少的拼写错误!

Compose documentation

fig, composition, compose, docker, orchestration, cli, reference

by  icopy.site