كيفية إعداد النشر المستمر لمشروعك: تجربة شخصية



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

النشر المستمر هو شيء عظيم. بمجرد التزامنا بالمشروع وبعد ذلك يحدث كل شيء في الوضع التلقائي ، تكون مراقبة هذه العملية ببساطة ساحرة. في هذه المقالة سأوضح كيف يمكنك تكوين كل شيء لمشروع منزلي.

نذكرك: لجميع قراء "Habr" - خصم بقيمة 10،000 روبل عند التسجيل في أي دورة تدريبية في Skillbox باستخدام الرمز الترويجي "Habr".

توصي Skillbox بما يلي: دورة Frontend Developer Profession عبر الإنترنت.
لذلك ، بالنسبة للمبتدئين ، دعونا ننظر إلى الرسم التخطيطي الذي يفسر الفرق بين التسليم المستمر والنشر المستمر.



في حالة وجود مشروع منزلي ، نختار Continuous Deployment ، حيث لا أحد يعمل معك (المشروع) ولا يعتمد عليه أحد. حسنًا ، لأنه في معظم الحالات تريد نشر التغييرات فورًا ، يكون الخيار واضحًا. إذا كنت تريد لاحقًا تغيير العملية ، يمكنك دائمًا القيام بذلك.

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

  • كيفية جعل dockerfile.
  • كيفية تحميل مشروع إلى جيثب.
  • كيفية إنشاء صورة عامل ميناء تلقائيًا على Docker Hub.
  • كيفية تنزيل صورة وتشغيلها تلقائيًا من برج المراقبة.

ما هو المطلوب:

  • فهم أساسي لما Docker و Dockerfile.
  • تثبيت جيت.
  • الحساب على <a href='https://hub.docker.com/"> Docker Hub

خادم (ماديًا أو افتراضيًا) يشغل Docker.

فيما يلي مستودعات GitHub و Docker Hub التي أعمل معها.

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


يجعل من الممكن استخدام نفس البيئة لعمليات مختلفة ، مما يلغي ظهور أكياس الهيسين والمشكلة "أنه يعمل فقط على الجهاز الخاص بي." حاويات معزولة ، وهو أمر جيد من وجهة نظر الأمن السيبراني. هناك المزيد من المزايا ، ولكن ، في رأيي ، هذان هما أهمهما.

تكوين Dockerfile

أولا نحتاج Dockerfile للمشروع. يسمى هذا الملف دائمًا بهذه الطريقة وليس له امتداد. هو دائما في الدليل الرئيسي للمشروع.

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

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

يتيح لك التقاط الملفات من الموقع الأولي إلى الموقع الحالي - بالطبع ، داخل الحاوية.

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

من الثعبان: 3.7
نسخة ..
RUN pip install -r requirements.txt

انها بسيطة ، أليس كذلك؟ الآن يمكنك تشغيل البرنامج في الحاوية.

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

الآن ، انتهى الأمر مع Dockerfile ويمكنك إنشاء الصورة والحاوية يدويًا. الآن فقط تخطي هذه اللحظة.

الآن ، فلنقم بإنشاء مستودع في GitHub ، لكن تذكر أن السطر "تهيئة هذا المستودع باستخدام README" لا يحتاج إلى لمسه.



الآن انسخ الرابط.



افتح cmd / shell دليل جذر المشروع. أنت الآن بحاجة إلى تهيئة المخزون ، وإضافة الملفات ، وتكوين الوضع عن بُعد ، والالتزام بالملفات وإرسال المشروع إلى GitHub.

git init git add * git remote add origin https://github.com/<user>/<repository>.git git commit -a -m "Make Dockerfile ready for CD" git push -u origin master 

إذا كان كل شيء على ما يرام ، فإن مستودع جيثب سيبدو كما يلي:



نحن في منتصف الطريق إلى النجاح!

تحتاج الآن إلى توصيل GitHub بـ Docker Hub. للقيام بذلك ، انتقل إلى إعدادات حسابك.



انتقل لأسفل والاتصال.



الآن إنشاء مستودع في Docker Hub.



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



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

والخبر السار هو أنه يمكنك تثبيت برج المراقبة مع Docker ، لهذا تحتاج إلى إدخال الأمر التالي في المحطة:

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

والآن نطلق الحاوية لمشروعنا!

 docker run -d --name <my-project> <username>/<my-project> 

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

في الختام ، إذا قمت بإرسال التزام إلى مستودع GitHub ، فإن Docker Hub ستقوم تلقائيًا بإنشاء صورة Docker. ثم برج المراقبة سوف تتفاعل معه.

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

توصي Skillbox بما يلي:

Source: https://habr.com/ru/post/ar439632/


All Articles