سيكون من المفيد إذا كان بإمكان المرء القيام بذلك
docker-compose build service1 service2 --no-cache
فقط أدركت أن النحو هو
docker-compose build --no-cache service1 service2
كنت أبحث عن هذا !!
ها هي طريقتي النظيفة لإعادة بناء مجموعتي المؤلفة
cd (إلى DIR الخاص بك)
docker-compose rm --all &&
docker-compose pull &&
docker-compose build --no-cache &&
docker-compose up -d --force-recreate &&
منطقي؟ أبحث عن أفضل الممارسات هنا :)
+1
هل هناك حاجة إلى إعادة إنشاء القوة؟
+1
أعتقد أن --force-recreate
هو الخيار الأفضل
--force-recreate
غير ضروري ، لأنه تمت إزالة جميع الحاويات للتو.
إذا كنت تريد مسح _ كل شيء _ خارج ، فإن down
أفضل من rm
، لأنه يمكنه أيضًا إزالة وحدات التخزين والشبكات.
$ docker-compose down -h
Stops containers and removes containers, networks, volumes, and images
created by `up`.
By default, the only things removed are:
- Containers for services defined in the Compose file
- Networks defined in the `networks` section of the Compose file
- The default network, if one is used
Networks and volumes defined as `external` are never removed.
Usage: down [options]
Options:
--rmi type Remove images. Type must be one of:
'all': Remove all images used by any service.
'local': Remove only images that don't have a custom tag
set by the `image` field.
-v, --volumes Remove named volumes declared in the `volumes` section
of the Compose file and anonymous volumes
attached to containers.
--remove-orphans Remove containers for services not defined in the
Compose file
أنا أستخدم هذا منذ 3 أشهر وهو متين للغاية لتلبية احتياجاتي.
لا أرغب في إزالة: الشبكات والأحجام والصور
echo && echo "PikWi says: docker-compose stop" && \
docker-compose stop && \
echo "PikWi says: docker-compose rm ..." && \
docker-compose rm -f --all && \
echo "PikWi says: docker-compose pull" && \
docker-compose pull && \
echo "PikWi says: docker-compose build ..." && \
docker-compose build --no-cache && \
echo "PikWi says: docker-compose up ..." && \
docker-compose up -d --force-recreate --remove-orphans
سأكون سعيدًا باستخدام شيء أقصر أو أنظف. أنا أفضل ممارسة :)
هتافات!
--لا لا تعمل ذاكرة التخزين المؤقت .... ما هو البديل - تواصل القوة-إعادة البناء استخدام ذاكرة التخزين المؤقت :(
julianfrank لست متأكدًا مما كنت تقصده بـ --no-cache does not work
ولكن ربما تقوم بتشغيله كـ
docker-compose build SERVICE_NAME --no-cache
عندما يجب أن يكون في الواقع docker-compose build --no-cache SERVICE_NAME
؟
عندما تكون الخطوات متشابهة عبر الخدمات المختلفة التي يتم بناؤها ، فإنها لا تزال تستخدم ذاكرة التخزين المؤقت من الحاوية التي تم إنشاؤها مسبقًا في البرنامج النصي ... تم العمل على بديل لاستخدام نفس الخطوات عندما أريد استخدام ذاكرة التخزين المؤقت وتغيير الترتيب لفرض تخطي ذاكرة التخزين المؤقت الاستخدام ...
إذا كنت تستخدم ذاكرة التخزين المؤقت fuc ** d وبدلاً من ذلك لا تستخدم ذاكرة التخزين المؤقت ، فأنت تقوم بإدخال أوامر جديدة في ملف عامل الإرساء لفرض تجديد طبقة ذاكرة التخزين المؤقت وإرسال الإعجاب ، وتحتاج معالجة ذاكرة التخزين المؤقت في عامل الإرساء إلى إعادة بناء ... أو تعمل بالفعل على تنظيف طبقات ذاكرة التخزين المؤقت
في الواقع ، إنه لا يعمل ...
يمكنك إجراء جميع التغييرات على Dockerfile لإحدى الخدمات ، ولا توجد انعكاسات على docker-compose build --no-cache
docker-compose up -d --build --no-deps web
سيعيد بناء الحاوية للخدمة المسماة "الويب" في docker-compose.yml. بمجرد الانتهاء من إعادة البناء ، سيتم إعادة تشغيل الحاوية المحددة.
--no-deps
سيحد من إعادة البناء لاسم الخدمة المحددة في الأمر.
بالإضافة إلى ذلك ، سيعيد هذا الأمر إنشاء الحاوية إذا كنت تنسخ الملفات في الحاوية وتغير أحد الملفات التي تنسخها - مثل requirements.txt
لمعلوماتك
docker-compose up --force-recreate --build
يبدو أنه لا يوجد خيار - no-cache لأمر up
يبدو أن force-rebe لا يستخدم هذا الخيار. يرجى تصحيح لي إذا كنت مخطئا!
لذا فإن أفضل نهج بالنسبة لي هو القيام بذلك ...
يزيل الحاوية والصور> يُنشئ الصور بدون إنشاء ذاكرة التخزين المؤقت> يتم فصل عامل إنشاء السفن> متابعة السجلات (حتى تتمكن من إخراج ctrl+c
منه)
docker-compose build --force-rm --no-cache && docker-compose up --detach && docker-compose logs -f
شبابيك:
docker-compose build --force-rm --no-cache ; docker-compose up --detach ; docker-compose logs -f
التعليق الأكثر فائدة
فقط أدركت أن النحو هو
docker-compose build --no-cache service1 service2