لم أتمكن من العثور على تذكرة مفتوحة بخصوص هذه المشكلة ، لكن أعتقد أنني لست الوحيد الذي يعاني من هذه المشكلة؟
$ 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
.. لذا فإن وجود eval $(docker-machine env dev)
في ملف bash_profile ليس بالأمر الممتع.
الحل 1: الكود الثابت للتصدير
$ docker-machine env dev >> ~/.bash_profile
الحل البديل 2: إصلاح التحميل البطيء جدًا
# 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'
إنه أصعب مما يبدو أن تجعله سريعًا ، حيث يتعين عليك بالفعل البحث عن عنوان IP الخاص بالجهاز الظاهري المعني (وإعادة إنشاء الشهادات إذا تم إبطالها). إذا كنت على استعداد لقبول مقايضة التناسق ، فقد تتمكن من إنشاء نسختك الخاصة باستخدام القيم "المخزنة مؤقتًا" بواسطة inspect
، لكن لا يمكنني ضمان أن ذلك سيعمل إلى الأبد.
سأغلق هذا لأنني لا أستطيع التفكير في طريقة لتحسين الطريقة الحالية دون التضحية بالاتساق ، ولكن لا تتردد في فتح مشكلة جديدة مع اقتراحات حول كيفية تحسين الطريقة ، على سبيل المثال docker-machine env --cached dev
لاستخدام القيم "المخزنة مؤقتًا".
لست على دراية بآلة الرصيف ، لذلك من الصعب التوصل إلى اقتراح. أردت فقط الإبلاغ عن المشكلة حتى يمكن مناقشتها :)
أنا أستخدم برنامج تشغيل vmwarefusion راجع للشغل.
شكرا على الإبلاغ ، ولاحظ!
انتهى بي الأمر بهذا ، فهو يعمل في 0.040
بالنسبة لي.
: ${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}"
التعليق الأكثر فائدة
انتهى بي الأمر بهذا ، فهو يعمل في
0.040
بالنسبة لي.