No pude encontrar un ticket abierto con respecto a este problema, pero supongo que no soy el único que tiene este problema.
$ 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
.. así que tener eval $(docker-machine env dev)
en .bash_profile no es divertido.
Solución 1: codifique las exportaciones de forma rígida
$ docker-machine env dev >> ~/.bash_profile
Solución 2: corrección de carga diferida muy sucia
# 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'
Es más difícil de lo que parece hacerlo rápido, ya que debe buscar la dirección IP de la máquina virtual en cuestión (y regenerar los certificados si se han invalidado). Si está dispuesto a aceptar el compromiso de coherencia, es posible que pueda crear su propia versión utilizando los valores "almacenados en caché" por inspect
, pero no puedo garantizar que funcione para siempre.
Voy a cerrar esto porque no puedo pensar en una manera de mejorar el método actual sin sacrificar la consistencia, pero siéntase libre de abrir un nuevo problema con sugerencias sobre cómo se podría mejorar el método, por ejemplo, docker-machine env --cached dev
para utilizar valores "almacenados en caché".
No estoy tan familiarizado con la máquina acoplable, por lo que es difícil hacer una sugerencia. Solo quería informar el problema para poder discutirlo :)
Estoy usando el controlador vmwarefusion por cierto.
Gracias por informar, ¡y anotado!
Terminé con esto, se ejecuta en 0.040
para mí.
: ${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}"
Comentario más útil
Terminé con esto, se ejecuta en
0.040
para mí.