web-dev-qa-db-fra.com

Comment ajouter l'achèvement de la commande bash pour Docker sur Mac OS X?

J'exécute docker et je veux que la commande bash soit terminée pour les commandes et les paramètres docker.

40
Michael_Scharf

Si vous avez déjà homebrewbash-completioninstallé installez simplement le script de fin de docker dans le bash_completion.d

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

Remarque: Si vous n'avez pas d'homebrew bash-completion installé, suivez ces instructions pour l'installer avant d'exécuter la ligne ci-dessus.

Remarque: l'achèvement dépend de certaines fonctions définies dans debian bash-complètement . Par conséquent, il est possible que la recherche du script de fin de docker comme décrit dans complètement/bash/docker ne fonctionne pas. Si vous essayez de terminer docker run (en appuyant sur TAB), vous pouvez obtenir une erreur comme __ltrim_colon_completions: command not found. Cela peut signifier que vous n'avez pas installé les scripts de complétion bash.

58
Michael_Scharf

La page officielle de Docker pour Mac contient une section sur l'installation de l'achèvement de bash:

https://docs.docker.com/docker-for-mac/#bash

Si vous avez installé l'achèvement de Homebrew bash:

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
33
Roy Clarkson

Les scripts d'achèvement sont fournis avec Docker Beta. Je veux qu'ils restent à jour. Donc, sous OS X ...

  • Installez bash-complétion de homebrew
  • Symlink les fichiers

    find /Applications/Docker.app \
    -type f -name "*.bash-completion" \
    -exec ln -s "{}" "$(brew --prefix)/etc/bash_completion.d/" \;
    
15
Harvey

Le point d'achoppement pour moi était qu'une fois que vous préparez l'installation de bash-competion, vous devez ajouter quelques lignes dans votre .bash_profile pour le charger une fois que vous lancez Terminal:

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

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

Parce que je n'ai trouvé nulle part une documentation étape par étape, j'ai fait un script rapide pour installer homebrew, bash-complètement et finalement les scripts de fin pour docker. https://github.com/HypnoTheNomad/docker-bash-completion-macos-brew

13
Hypno

L'achèvement automatique de Docker n'était pas seulement nécessaire pour Mac, il était également nécessaire pour les terminaux Ubuntu/Bash.

Dans 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

L'achèvement sera disponible lors de la prochaine connexion.

Depuis son meilleur résultat dans Google, j'ai ajouté une réponse ici.

5
arulraj.net

Juste pour être dit: si vous utilisez brew : brew install docker fera tout ce dont vous avez besoin. Il comprend brew link docker qui installe la complétion dans `brew --prefix`/etc/bash_completion.d/docker même sujet, même réponse pour docker-machine, docker-compose, etc. ...

sinon (vous utilisez peut-être Docker Beta (nouveau package d'installation de docker "plus natif" sans Virtualbox), vous devez toujours l'ajouter manuellement, puis suivez réponse de Michael plus jetez un œil aux scripts de complétion supplémentaires pour docker -machine, docker-compose et certains Shell-helper qui sont gérés dans le 'script' de CodeCorrupt

1
childno͡.de