Cómo agregar la finalización de comandos bash para Docker en Mac OS X?


Estoy ejecutando docker y quiero bash completar el comando para docker comandos y parámetros.

Author: Michael_Scharf, 2014-10-01

6 answers

Si ya tienes homebrew bash-completion instalado {[8] } simplemente instale el script de finalización de docker en el bash_completion.d

curl -XGET https://raw.githubusercontent.com/docker/cli/master/contrib/completion/bash/docker > $(brew --prefix)/etc/bash_completion.d/docker

Nota: Si no tiene homebrew bash-completion instalado, siga estas instrucciones para instalarlo antes de ejecutar la línea anterior.

Nota: la finalización depende de algunas funciones definidas en debian bash-completion. Por lo tanto, simplemente obtenga el script de finalización de docker como se describe en completion/bash/docker puede no funcionar. Si intenta completar docker run (pulsando TAB) puede obtener un error como __ltrim_colon_completions: command not found. Esto significa que no ha instalado los scripts bash-completion.

 51
Author: Michael_Scharf,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-10-03 20:56:50

La página oficial de Docker para Mac tiene una sección sobre la instalación de finalización de bash:

Https://docs.docker.com/docker-for-mac/#/installing-bash-completion

Si tiene instalado Homebrew bash completion:

cd /usr/local/etc/bash_completion.d
ln -s /Applications/Docker.app/Contents/Resources/etc/docker.bash-completion
ln -s /Applications/Docker.app/Contents/Resources/etc/docker-machine.bash-completion
ln -s /Applications/Docker.app/Contents/Resources/etc/docker-compose.bash-completion
 17
Author: Roy Clarkson,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-11-10 18:08:51

Los scripts de finalización vienen con Docker Beta. Quiero que estén al día. Entonces, en OS X...

  • Install homebrew's bash-completion
  • Enlace simbólico a los archivos

    find /Applications/Docker.app \
    -type f -name "*.bash-completion" \
    -exec ln -s "{}" "$(brew --prefix)/etc/bash_completion.d/" \;
    
 12
Author: Harvey,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-02-06 19:07:28

El punto de tropiezo para mí fue que una vez que usted brew instalar bash-competion, usted tiene que añadir algunas líneas en su .bash_profile para cargarlo una vez que inicie Terminal:

if [ -f $(brew --prefix)/etc/bash_completion ]; then
. $(brew --prefix)/etc/bash_completion
fi

Fuente: http://davidalger.com/development/bash-completion-on-os-x-with-brew /

Debido a que no he encontrado en ningún lugar una documentación paso a paso, he hecho un script rápido para instalar homebrew, bash-completion y, finalmente, los scripts de finalización para docker. https://github.com/HypnoTheNomad/docker-bash-completion-macos-brew

 11
Author: Hypno,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-07-31 22:10:42

La finalización automática de docker no solo es necesaria para mac, también es necesaria para terminales ubuntu / bash.

En Ubuntu

curl -ksSL https://raw.githubusercontent.com/docker/docker/$(docker --version | awk 'NR==1{print $NF}')/contrib/completion/bash/docker |sudo tee /etc/bash_completion.d/docker

La finalización estará disponible en el próximo inicio de sesión.

Desde su primer resultado en Google he añadido respuesta aquí.

 5
Author: arulraj.net,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-12-18 07:23:37

Solo para ser dicho: si usa brew : brew install docker haré todo lo que necesites. Incluye brew link docker que instala la terminación en `brew --prefix`/etc/bash_completion.d/docker mismo tema, misma respuesta para docker-machine, docker-compose, etc. ...

De lo contrario (tal vez esté utilizando Docker Beta (nuevo paquete de instalación de docker" más nativo " sin Virtualbox) todavía tiene que agregarlo manualmente, luego siga La respuesta de Michael además de echar un vistazo a los scripts de finalización adicionales para docker-machine, docker-compose y algunos shell-helper que se manejan en el'script' desde CodeCorrupt

 1
Author: childno͡.de,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-05-23 10:31:12