Machine: docker-machine env est lent

Créé le 19 sept. 2015  ·  5Commentaires  ·  Source: docker/machine

Je n'ai pas pu trouver de ticket ouvert concernant ce problème, mais je suppose que je ne suis pas le seul à avoir ce problème ?

$ uname -a
Darwin 14.5.0 Darwin 
Kernel Version 14.5.0: Wed Jul 29 02:26:53 PDT 2015; 
root:xnu-2782.40.9~1/RELEASE_X86_64 x86_64
$ time docker-machine env dev >/dev/null

real    0m0.254s
user    0m0.217s

.. donc avoir eval $(docker-machine env dev) dans .bash_profile n'est pas amusant.

Solution 1 : coder en dur les exportations

$ docker-machine env dev >> ~/.bash_profile

Solution de contournement 2 : correctif de chargement paresseux très sale

# Lazy load docker-machine env on first docker run
alias docker='docker-machine start dev>/dev/null && eval $(docker-machine env dev) && unalias docker && docker'

Commentaire le plus utile

J'ai fini avec ça, ça 0.040 pour moi.

: ${DOCKER_MACHINE_NAME="my_vm_name"}

docker-machine inspect ${DOCKER_MACHINE_NAME} --format \
"export DOCKER_HOST=tcp://{{ .Driver.IPAddress }}:2376
export DOCKER_TLS_VERIFY=1
export DOCKER_CERT_PATH={{ .HostOptions.AuthOptions.StorePath }}
export DOCKER_MACHINE_NAME=${DOCKER_MACHINE_NAME}"

Tous les 5 commentaires

Il est plus difficile qu'il n'y paraît de le faire rapidement, car vous devez réellement rechercher l'adresse IP de la VM en question (et régénérer les certificats s'ils ont été invalidés). Si vous êtes prêt à accepter le compromis de cohérence, vous pourrez peut-être créer votre propre version en utilisant les valeurs "mises en cache" par inspect , mais je ne peux pas garantir que cela fonctionnera pour toujours.

Je vais fermer ceci car je ne vois pas de moyen d'améliorer la méthode actuelle sans sacrifier la cohérence, mais n'hésitez pas à ouvrir un nouveau numéro avec des suggestions sur la façon dont la méthode pourrait être améliorée, par exemple docker-machine env --cached dev d'utiliser des valeurs "cachées".

Je ne connais pas très bien docker-machine, il est donc difficile de faire une suggestion. Je voulais juste signaler le problème afin qu'il puisse être discuté :)

J'utilise le pilote vmwarefusion d'ailleurs.

Merci pour le signalement, et noté!

J'ai fini avec ça, ça 0.040 pour moi.

: ${DOCKER_MACHINE_NAME="my_vm_name"}

docker-machine inspect ${DOCKER_MACHINE_NAME} --format \
"export DOCKER_HOST=tcp://{{ .Driver.IPAddress }}:2376
export DOCKER_TLS_VERIFY=1
export DOCKER_CERT_PATH={{ .HostOptions.AuthOptions.StorePath }}
export DOCKER_MACHINE_NAME=${DOCKER_MACHINE_NAME}"
Cette page vous a été utile?
0 / 5 - 0 notes