1. نقاط الألم التي يتعين حلها
1. لا حاجة لبناء بيئة تنمية خلفية.
2. التغييرات في بيئة التطوير تتطلب فقط تغيير المرآة إلى التحديثات المتزامنة.
3. لا حاجة لأدوات IDE مثل Eclipse.
4. تبديل مشاريع تطوير
2. الحلول
استخدم Docker لبدء صور Ubuntu ، وإنشاء بيئة التطوير التي تتطلبها المشروع في الحاوية ، وقم بتركيب الكود المحلي في الحاوية ، واستخدم وحدة التخزين لتجميع الكود وتشغيله باستخدام البيئة في الحاوية ، ويصل المضيف إلى الخدمات الموجودة في الحاوية من خلال الميناء المكشوف بواسطة Docker ، بحيث تحتاج آلة تطوير الواجهة الأمامية فقط إلى نشر Docker والقيام بذلك.
3. حول مينكر
افهم دوكر
هذه المقالة لا تنوي شرح معرفة Docker بالتفصيل. هناك العديد من المقالات ذات الصلة. إذا كنت مهتمًا ، فيمكنك قراءة هذا الكتاب. أنا يقتصر على تطوير هذه الأداة لاستخدام Docker. إذا كان هناك أي شيء خاطئ ، فيرجى الإشارة إليه.
مسرع
Daocloud Accelerator
4. بناء بيئة
بعد تنزيل وتثبيت Docker ، يمكننا أن نبدأ. ما نتحدث عنه أدناه هو Java ، ولكن الأمر نفسه ينطبق على البيئات الأخرى.
احصل على صورة أوبونتو.
Docker سحب Ubuntu
بعد الانتهاء من ذلك ، قم بتنفيذ docker images وسترى صورة محدثة حديثًا.
أدخل الحاوية
Docker Run -it Ubuntu
5. تثبيت البرنامج وتكوين متغيرات البيئة
أولا تحديث APT-GET
تحديث APT-GET
بعد ذلك ، يمكنك استخدام apt-get install * لتثبيت البرنامج الذي تحتاجه. إذا لم يكن الأمر كذلك ، قم بتنزيل حزمة التثبيت وقم بتثبيتها بنفسك. في الوقت نفسه ، قم بتكوين متغيرات البيئة. لن أخوض في التفاصيل هنا.
السادس. ابدأ الخدمة
أدخل دليل Tomcat ، وابدأ الخدمة ، وافتح 0.0.0.0:8080 في المتصفح. إذا لم يكن هناك شيء خاطئ ، فسترى أنه لا يمكن الوصول إلى الخادم. هذا لأن الخدمة التي بدأناها للتو هي في Docker. إذا لم نقم ببعض العمليات ، فلن نتمكن من الوصول إلى الخدمة داخل Docker.
لذلك ، دعنا نخرج من الحاوية أولاً
مخرج
بعد الخروج ، قم بتنفيذ docker ps -a ويمكنك أن ترى أن الحاوية التي لا يزال هناك الآن موجودة. سيقوم معظم الأشخاص الجدد في Docker بهذا الخطأ ويعتقدون أنه سيتم تدمير الحاوية بعد الخروج من الحاوية ، ولكن في الواقع ليس الأمر كذلك.
إذا أردنا إدخال هذه الحاوية مرة أخرى ، فيمكننا تنفيذ الأمر التالي ، يرجى نسخ معرف الحاوية الخاص بك.
Docker Exec -it Container ID Bash
على الرغم من أن الحاوية لا تزال قيد التشغيل ، إلا أنها لم تستمر. لمنع حدوث ذلك ، سيتم استمراره في أقرب وقت ممكن بعد تعديل المحتويات في الحاوية.
Docker Commit Container ID Java
يعني هذا الأمر أن يستمر الحاوية في صورة جديدة تسمى Java.
ابدأ هذه الصورة التي تم إنشاؤها حديثًا.
Docker Run -it -P 8080: 8080 Java
انتبه إلى التغيير في أمر بدء التشغيل الخاص بنا ، وهناك أمر إضافي. هذا الأمر يعني فضح منفذ 8080 في الحاوية إلى المضيف.
تفضل بزيارة 0.0.0.0:8080 مرة أخرى ويمكننا رؤية القط الصغير ، إنه لطيف للغاية.
ماذا علي أن أفعل إذا كانت الحاوية لا تزال تشغل ذاكرتنا الآن؟ اقتله.
معرف حاوية Docker RM
تم الانتهاء من خطوتنا الأولى ، وبعد ذلك سندمج الكود الخاص بنا.
7. رمز متكامل
الحاوية التي بدأناها للتو هي صندوق أسود مستقل تمامًا ، ليس لديه أي فكرة عن مكان وجود رمزنا ، لذلك نحتاج إلى استخدام وحدة تخزين Docker حتى يتمكن المضيف والحاوية من مشاركة الدليل.
آسف ، سنقتل الحاوية التي بدأناها للتو مرة أخرى.
Docker Run -it -v/user/name/web:/opt/root -p 8080: 8080 java
أضاف أمر بدء التشغيل الخاص بنا عضوًا جديدًا -v. معنى هذا الأمر هو تعليق دليل الويب تحت دليل جذر المستخدم في الحاوية في دليل /OPT /ROUT.
بعد إدخال الدليل ، يمكننا أن نجد أن الملفات الموجودة في دليل الويب ترقد بهدوء في الداخل ، مثل ماري سو التي كانت نائمة لسنوات عديدة تنتظر مكالمتك.
ابدأ الاتصال.
MVN Clean تثبيت -u -plocal -dskiptests
بعد فترة من الزمن ، سنرى موجهًا للتغليف الناجح. انسخ حزمة الحرب إلى دليل Tomcat WebApps ويمكنك الوصول إلى مشروعك.
في هذه المرحلة ، بدأ مشروعنا في العمل أخيرًا ، ولكن هناك العديد من المشكلات.
1. هل يجب عليك تشغيل مثل هذا الأمر الطويل في كل مرة؟ مزعجة للغاية.
2. في كل مرة تقوم فيها بتغيير الكود ، يجب إعادة تعبئة ، الأمر الذي يستغرق وقتًا طويلاً.
3. كيف تقرأ سجل بدء التشغيل؟ ماذا علي أن أفعل إذا أبلغت عن خطأ؟
4. كيفية تعديل ملف القالب الأمامي دون إعادة تشغيل الخدمة؟
بناءً على هذه المشكلات ، نحتاج إلى كتابة نص لحلها.
8. سيناريو شل
سيقدم البرنامج النصي الإرشادات التالية
-y تحديث Maven حزمة الحزمة-باكاج إطلاق سراح تومكات
-P package-package-lease-start tomcat
-R إعادة تشغيل Tomcat
-C إعادة ترجمة ملف Java - الإصدار - ابدأ Tomcat
-W يستمع إلى ملفات VM ، التزامن 5S الافتراضي مرة واحدة
-L عرض سجل Tomcat
-همك
# المتغيرات التي يجب أن تكون تم تغيير #####################################################################################################################################################################. ###################################################################### ##################################################################### ###################################################################### ##################################################################### ###################################################################### ##################################################################### ###################################################################### عنوان بدء تشغيل المشروع TOM_ROOT = "$ {tom_url}/webapps"# فاصل الاستماع إلى الملف ، الوحدة wt = 5# copy vmwc_vm = "src/main/webapp/web-inf/tpl/usr/share/tomcat7/webapps/root/web-inf/" copy classwc_java = "target/classes /usr/share/tomcat7/webapps/root/web -inf/" # method general method # # استخدم وظيفة الحزمة الجديدة newwar () { # حذف الحزمة القديمة rm -rf $ {tom_root}/* # ابدأ الخدمة $ {tom_url} /bin/startup.sh # أدخل سجل بدء التشغيل -f $ {tom_url} /logs/catalina.out} # معالجة التوجيهات أثناء getOpts ": yprcwlh" case "keptnamedo case" $ optname "in" y ") echo" إعادة تشغيل Newwar ؛؛ "P") echo "repackage" MVN Clean Package -P $ {dev} -DSKIPTESTS Newwar RESTART ؛؛ "R") Echo "إعادة تشغيل Tomcat" إعادة التشغيل ؛؛ "C") echo "إعادة ترجمة وإعادة تشغيل الخدمة" MVN Clean Compile -P $ {dev} -DSKIPTESTS CP -R $ {WC_JAVA} RESTART ؛؛ "W") echo "ابدأ الاستماع إلى ملفات VM" # استمع إلى VM Watch -N $ {wt} cp -r $ {wc_vm} ؛؛ "l") echo "تسجيل الدخول" # استمع إلى VM tail -f $ {tom_url} /logs/catalina.out ؛؛ "H") echo "-y تحديث Maven package -compile -package -release -start service" echo "-p preاحان ويبدأ إصدار الحزمة خدمة واحدة" echo "-r إعادة تشغيل tomcat tomcat" echo "-c re -refa file" echo " -echo" - ESAC 9. الترويج للفريق
بعد الخطوات الثلاث المذكورة أعلاه ، تم بناء أدواتنا ، ولكن كيف يمكن للآخرين استخدامها؟
يوفر Docker الخدمات السحابية. إذا كانت صورتنا صغيرة بدرجة كافية ، فيمكننا دفع الصورة إلى السحابة لتنزيلها وتشغيلها ، لكن صورتنا تجاوزت 1G. . . لذلك لا يمكننا استخدام هذه الطريقة.
Docker Save Java -o ./java.tar
استخدم الأمر أعلاه لاستمرار الصورة في الملف المحلي java.tar ، ثم نقله إلى آلات زملاء الدراسة الآخرين من خلال وسائل أخرى. نستخدم Airdrop ، بضع دقائق من الأشياء.
Docker Load -i Java.tar
يمكن للطلاب الآخرين استخدام هذا الأمر لتحميل صورتنا في Docker.
ثم دمج البرنامج النصي shell في دليل جذر المشروع ويمكنك استخدامه بسعادة.
لخص
ما سبق هو المحتوى الكامل لهذه المقالة. آمل أن يكون محتوى هذه المقالة من بعض المساعدة لدراستك أو عملك. إذا كان لديك أي أسئلة ، فيمكنك ترك رسالة للتواصل.