אם אתה מחפש דרך לבדוק ולהשקיע את הדימויים שלך ב- CircleCI, יצירת קו אוטומציה יכולה להביא אותך רחוק כדי לשפר את מסירת התוכנה שלך.
במדריך זה, תלמד כיצד תוכל לפתח קו אוטומציה עבור הדימוי שלך באמצעות CircleCI.
המשך קריאה והשק את הדימויים שלך, רק אם הם עוברים את הבדיקה!
דרישות מוקדמות
מדובר במדריך מעשי. אם ברצונך לבצע את המדריך, וודא שיש לך את הבא:
- A GitHub account and GitHub repository that is already set up.
- A CircleCI account linked to your GitHub account.
- Docker מותקן.
- A Linux machine – This tutorial uses Ubuntu 20.04.3 LTS.
יצירת דימוי באמצעות Docker של אפליקציה בנויה ב-Python
לפני שתתחיל ליצור קו אוטומציה, יש לך ליצור דימוי של Docker בהתבסס על יישום ב-Python שמציג טקסטים בדפדפן אינטרנט. תעבור בקצרה דרך כיצד היישום מבוסס, תכתוב את מקרי הבדיקה עבור היישום ואז תקונטנריז את היישום.
1. פתח את הטרמינל שלך והרץ את הפקודה הבאה כדי להתקין את Flask ו- Pytest. Flask הוא סביבת עבודה המשמשת לבניית אפליקציות אינטרנט בפייתון, בעוד ש- Pytest משמש לכתיבת בדיקות לקוד פייתון.
2. לאחר מכן, צור ספריית פרויקט עם השם המועדף עליך, אך ספריית הפרויקט תקרא flask-circleci
בדוגמה זו. ספריית זו היא המקום שבו תאחסן את המשאבים שלך למדריך זה.
3. צור קובץ בשם flask-circleci/main.py ומלא את הקוד הבא.
הקוד למטה מציג את הטקסט "ברוכים הבאים לאפליקציית Flask שלי" בדף הבית בדפדפן.
4. כעת, צור קובץ נוסף בשם flask-circleci/test_main.py והעתק/הדבק את הקוד הבא.
הקוד למטה יוצר לך לקוח בדיקה עבור האפליקציה שלך.
Pytest דורש ששם קובץ הבדיקות שלך יתחיל עם test_ כפי שמודגם למטה.
5. הרץ את הפקודות הבאות כדי לנווט לתיקיית הפרויקט שלך (flask-circleci
), הפעל את הבדיקות שלך.
אם הבדיקה הצליחה, תקבל 100% התקדמות, כפי שמוצג למטה.

6. לבסוף, צור קובץ טקסט (requirements.txt) לתיעוד התלויותיך בתיקייה הראשית ומלא את הטקסט למטה. קובץ זה הוא חיוני בבניית הדוקר שלך כך שהוא יעבוד כראוי.
7. לבסוף, צור קובץ חדש (flask-circleci/Dockerfile), וכתוב את ההוראות לקובץ ה־Dockerfile לבניית הדוקר שלך.
ההוראות בקובץ ה־Dockerfile מבצעות את הפעולות הבאות:
- יצירת קובץ בתמונה שלך.
- העתקת כל הקבצים בתיקייה הנוכחית (flask-circleci).
- הפעלת קוד שלך
יצירת צינור CI/CD של CircleCI
עכשיו יש לך את התמונת Docker שלך מוכנה, תיצור צינור CI/CD כדי לבדוק את הקוד שלך, ואם כל הבדיקות עוברות, התמונה של Docker תידחס ל Hub של Docker. Docker Hub הוא שירות דומה ל-GitHub, אך עבור תמונות Docker, שעוזר לך למצוא ולשתף תמונות מכולות עם הצוות שלך או מפתחים אחרים.
כדי ליצור את צינור ה CI/CD, עקוב אחר השלבים הבאים:
1. פתח את הדפדפן האינטרנט האהוב עליך והתחבר אל חשבון Hub של Docker.
2. בדף הבית של Hub של Docker, לחץ על האפשרות צור מאגר כדי ליצור מאגר ב-Hub של Docker.

3. הגדר שם ייחודי עבור המאגר שלך. במדריך זה משתמשים במאגר בשם circleci-tutorial, כפי שמוצג למטה.

4. צור קובץ חדש (flask-circleci/config.yml) בשורש הפרוייקט שלך, והעתק/הדבק את הקוד לתוך הקובץ config.yml.
הקוד למטה משתמש בתמונת Python מוכנה ומשתמש בה כדי להתקין את התלויות ולהפעיל את מבחני היחידה כדי לבנות ולדחוף את תמונת ה-Docker שלך למאגר ה-Docker Hub שלך.
רגילה, עבור פרוייקט פעיל, תרצה להכניס את שם המשתמש והסיסמה שלך בתוך CircleCI או אולי בקובץ .env.
5. לבסוף, הרץ את הפקודות הבאות בשורש הפרויקט שלך כדי לcommit
ולpush
את הקוד (flask-circleci/config.yml) למאגר GitHub שלך.
עובד בפעולה את מערכת הניהול של מערכת CircleCI CI/CD
יצרת כעת את ה־CircleCI CI/CD Pipeline שלך, אך כרגע הוא פשוט עומד שם ולא עושה הרבה. עליך להפעיל את ה־pipeline שלך על ידי הגדרת פרויקט בחשבון שלך ב־CircleCI.
1. התחבר לחשבון ה־CircleCI שלך עם חשבון ה־GitHub שלך בדפדפן האינטרנט שלך.
2. לאחר מכן, לחץ על לשונית ה־Projects בלוח הצד השמאלי, ולחץ על לחצן ה־Set Up Project בצד ימין של הפרויקט שלך כדי להפעיל את מערכת ה־CircleCI על הפרויקט.
מאחר שהתחברת ל־CircleCI עם חשבון ה־GitHub שלך, הפרויקטים שלך סונכרנים עם CircleCI, כפי שמוצג בדימוי למטה.

3. חזור ללשונית ה־Dashboard ותראה את מצב ה־Success. מצב ה־Success מציין שהכל התרחש כפי שצפוי, והדימוי הועלה למאגר ה־Docker Hub שלך.
לחץ על בנייה כדי לראות את כל השלבים שהופעלו ב־pipeline.

מתחת לכך, תראה את רשימת השלבים ש־CircleCI ביצעה כדי להפעיל את ה־pipeline.

4. לבסוף, החזור למאגר ה־Docker Hub שלך, ותראה את הדימוי שהועלה ל־Docker Hub דרך ה־CircleCI pipeline.

דחיפת שינויים ל־GitHub כדי להפעיל את ה־CircleCI Pipeline
עד כה, יש לך קוֹד circleci פעיל. אך אולי עשית שינויים בפרויקט שלך. אם כן, איך ידעת שהקוֹד עדיין עובד? תוכל להפעיל את circleci על ידי דחיפת שינויים למאגר github שלך ולראות אם הבדיקה תצליח.
1. במחשב המקומי שלך, החלף את הקוד שיש לך ב־test_main.py עם הקוד למטה. הקוד מבצע כוונה ומבטיח שהבדיקה תכשל מכיוון שקוד הסטטוס שונה מ־200
ל־400
.
2. לאחר מכן, החלף את steps
ב־config.yml שבונה את תמונת הדוקר ודוחפת אותה ל־docker hub עם הקוד למטה.
בקוד למטה, אתה רק משנה את הגרסה כדי לוודא שרק שינויים חדשים יודחפו למאגר github שלך.
3. הרץ את הפקודות הבאות בשורש הפרויקט שלך כדי להכניס לשלב את הקוד למאגר github שלך.
4. כעת, נווט ללוח המחוונים שלך ב־circleci, ותראה שהבנייה נכשלה, כפי שמוצג למטה.
לחץ על בנייה כדי לראות את השלבים הנדרשים כדי לדחוס את השינויים ולאשר מה גרם לכשל בבנייה.


בסיום, נווט למאגר ה-Docker Hub שלך ואשר שהשינויים לא דוחסו.
כפי שניתן לראות בתמונה למטה, v2 לא הועלה מכיוון שהבדיקה נכשלה.

סיכום
מכללל במהלך המדריך הזה, למדת כיצד לכתוב בדיקות ולהכניס את היישום שלך ב-Python לתוך Docker. יצרת צינור CI/CD עם CircleCI שמפעיל את הבדיקות עבור היישום שלך ודוחס את תמונת ה-Docker שלך ל-Docker Hub.
בנקודה זו, יש לך כבר ידע בסיסי על פיתוח צינור CI/CD עם CircleCI. כעת, איך אתה מתכוון להשתמש בידע הזה החדשני? אולי ייצור צינור CI/CD שפותח את תמונת ה-Docker שלך ל-Heroku?
Source:
https://adamtheautomator.com/circleci-docker-images/