كيفية إعداد النشر المستمر في مشروع منزلك بالطريقة السهلة

إن النشر المستمر شيء جميل. إن الالتزام بمشروعك ورؤيته يتم بناؤه ونشره دون الحاجة إلى القيام بأي شيء هو أمر مذهل.

وفي هذه المقالة ، أريد أن أوضح لك كيفية إنجاز ذلك في مشروع منزلك بسهولة.

لتوضيح ذلك ، يوجد هنا مخطط انسيابي يوضح الاختلافات بين التسليم المستمر والنشر المستمر.

نظرًا لأن معظم الوقت لا يعتمد أحد سواك على مشروعك المنزلي ، فإننا نذهب لسير عمل مع النشر المستمر لأنك تريد أن ترى التغييرات التي قمت بنشرها على الفور. إذا لم يكن الأمر كذلك ، يمكنك تغيير سير العمل لاحقًا.

سوف تتعلم ما يلي:

  • كيفية عمل ملف Dockerfile
  • كيف تدفع مشروعك إلى GitHub
  • إنشاء صورة عامل الإرساء تلقائيًا على Docker Hub
  • تنزيل الصورة وتشغيلها تلقائيًا باستخدام برج المراقبة

المتطلبات الأساسية:

  • بعض المعرفة حول Docker و Dockerfile ، على الرغم من أنني سأشرح بعضًا منها على طول الطريق
  • تثبيت بوابة
  • حساب Docker Hub
  • خادم (Linux) (فعلي أو افتراضي) يقوم بتشغيل Docker

كمرجع ، هذا هو مثال مستودع GitHub ، وهذا هو مثال مستودع Docker hub الذي سأستخدمه.

وبالتالي لن يكون هذا البرنامج التعليمي مفيدًا إلا إذا كنت تنوي تشغيل برنامجك باستخدام Docker (والذي أوصي به لأن Docker رائع).

لماذا تستخدم Docker؟

يمكّنك Docker من الحصول على نفس البيئة للتطوير والإنتاج والتي تقضي على مشكلة Heisenbugs و "أنها تعمل على جهازي". كما أن الحاويات معزولة مما يمنحنا مزايا أمنية.

هناك ما هو أكثر من ذلك ، لكن هاتين الميزتين تجعلني دائمًا أقدم برنامجي في حاويات Docker.

إعداد Dockerfile الخاص بك

أولاً ، سنقوم بعمل Dockerfile للمشروع. يسمى هذا الملف الخاص دائمًا "Dockerfile" بدون امتداد ويوجد في الدليل العلوي لمشروعك.

يبدأ ملف Docker بالعبارة FROMالتي تخبر Docker بالصورة الأساسية التي تريد البدء بها. يمكنك تخيل هذا على أنه استخدام لوحة قماشية مع الخلفية مرسومة بالفعل والجزء المركزي فقط (برنامجك) مفقود.

في معظم الأوقات ، تكون الصورة التي تريد سحبها هي الصورة الأساسية للغة البرمجة الخاصة بك ، والتي يمكنك العثور عليها في Docker Hub المذكور سابقًا.

بعد ذلك ، نقوم بنسخ ملفات المشروع الخاصة بنا في حاوية عامل الإرساء باستخدام COPY..الأمر. ماذا يفعل هذا؟

يأخذ الملفات من الدليل الأول (تشير النقطة إلى الدليل الحالي للملف ، والذي يتضمن جميع ملفات مشروعك) ويضعها في الدليل الحالي لحاوية Docker (تذكر أن حاوية عامل الإرساء هي نظام التشغيل الخاص بها). ملفاتك موجودة الآن في الدليل الأساسي هناك ، والذي قد ترغب في تغييره.

بعد ذلك ، نحتاج إلى تثبيت التبعيات ، والتي سأستخدمها python pip، ولكن أي نظام إدارة حزم مكافئ يعتمد على اللغة التي تختارها سيفي بالغرض. الشيء المهم الذي يجب تعلمه هنا هو كيفية تنفيذ الأوامر في الحاوية باستخدام RUN.

From python:3.7COPY . .RUN pip install -r requirements.txt

سهل أليس كذلك؟ الآن علينا أن نبدأ برنامجنا في الحاوية.

CMD ["python", "./my_script.py"]

بيان CMD فريد من نوعه. يجب أن يكون كل ملف Dockerfile هو السطر الأخير لأنه يبدأ العملية الأساسية في الحاوية.

لقد انتهيت من Dockerfile الخاص بك! يمكنك الآن إنشاء صورتك وحاويتك يدويًا ، لكننا سنتخطى ذلك الآن.

الآن ، سننشئ مستودعنا على GitHub ، لكن تذكر ترك "تهيئة هذا المستودع باستخدام README" دون تحديد.

ثم ستحتاج إلى نسخ عنوان URL البعيد.

افتح cmd / shell في الدليل الجذر لمشروعك.

تحتاج إلى تهيئة مستودع git الخاص بك وإضافة ملفاتك وتهيئة جهاز التحكم عن بُعد وتثبيت الملفات ودفع مشروعك إلى GitHub.

git initgit add *git remote add origin //github.com//.gitgit commit -a -m "Make Dockerfile ready for CD"git push -u origin master

الآن ، يجب أن يبدو مستودع GitHub الخاص بك كما يلي:

تهانينا ، لقد انتهيت من منتصف الطريق تقريبًا!

الخطوة التالية هي توصيل GitHub بـ Docker Hub. لهذا ، تذهب إلى إعدادات الحساب.

قم بالتمرير لأسفل وقم بتوصيل مضيف git الخاص بك.

قم بإنشاء المستودع الخاص بك على Docker hub الآن.

امنح الريبو اسمًا وانقر على أيقونة GitHub (أو Bitbucket ، إذا كان هذا هو الشيء الذي تفضله). اختر الآن مؤسستك (عادة اسم المستخدم الخاص بك) واسم مشروعك. إذا كنت ترغب في استخدام صورتك الرئيسية للبناء والدفع دائمًا إلى الأحدث ، يمكنك الآن النقر فوق "إنشاء وبناء" ومشاهدة صورتك يتم إنشاؤها من أجلك. خلاف ذلك ، يجب عليك تحرير إعدادات البناء.

الخطوات الأخيرة! أنت الآن بحاجة إلى برج المراقبة على جهازك المستهدف.

برج المراقبة هو برنامج يسحب صور عامل الإرساء قيد التشغيل ويتحقق من التحديثات. إذا كان هناك أي تحديثات ، فإنه يغلق الحاوية الأصلية بأمان وينشئ حاوية من الصورة الجديدة بنفس الإعدادات.

أفضل شيء هو أنه يمكننا أيضًا تثبيت Watchtower مع Docker!

أدخل ما يلي في جهازك:

docker run -d --name watchtower -v /var/run/docker.sock:/var/run/docker.sock v2tec/watchtower

فأنت بحاجة إلى تشغيل حاوية Docker لمشروعك!

docker run -d --name  /

يجعل الخيار "-d" برنامجك يعمل في الخلفية ، لذلك لا يتم إيقاف تشغيل البرنامج إذا أغلقت الجهاز.

للتلخيص ، إذا دفعت التزامًا بمستودع GitHub الخاص بك ، فسيقوم Docker hub تلقائيًا بإنشاء صورة Docker لك. يتم سحب هذه الصورة بعد ذلك بواسطة WatchTower ويتم تشغيلها بجميع الخيارات الأصلية.

إذا كنت بحاجة إلى مساعدة في أي وقت ، فلا تخف من السؤال ، يسعدني تقديم المساعدة.

إذا كانت مشكلة فنية ، فستكون المشكلة في مشروع GitHub رائعة!

لكن ماذا عن الاختبارات؟

سؤال جيد!

يمكنك استخدام Travis CI لإجراء اختباراتك في نفس الوقت.

يمكنك أن تقرأ عن هذا هنا ، ولكن جوهر ذلك هو أنك تضيف ملفًا آخر إلى المستودع الخاص بك يحتوي على إرشادات لخادم خارجي لتنفيذ اختبارات الوحدة أو أي تعليمات أخرى.

ولكن ماذا لو أردت فقط إنشاء صورة عامل الإرساء إذا نجحت الاختبارات؟

هذا يكسر سير العمل لدينا قليلا.

لا يمكننا الآن الاعتماد على Docker hub لبناء صورنا بعد الآن. بدلاً من ذلك ، سيكون Travis CI هو الذي ينتج الصورة ثم يدفعها إلى مستودع Docker Hub الخاص بك. اقرأ عن هذا هنا.