0Pricing
DevOps Bootcamp · درس

بناء صور Docker باستخدام Actions

أتمتوا عملية بناء صور Docker لتطبيقاتكم مباشرةً ضمن سير عمل GitHub Actions.

بناء صور Docker باستخدام Actions درس مجاني في DevOps Bootcamp على CoddyKit. هذا هو الدرس 1 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في DevOps Bootcamp، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة DevOps Bootcamp 4 دروس في المجموع.

ما هي صور Docker؟

مرحبًا! في هذا الدرس، ستتعلمون إنشاء صور Docker باستخدام GitHub Actions.

أولًا، ما هي صورة Docker؟ تخيلوها كحزمة خفيفة ومستقلة وقابلة للتنفيذ، تتضمن كل ما يلزم لتشغيل جزء من البرنامج:

  • التعليمات البرمجية الخاصة بكم
  • بيئة تشغيل، مثل Java أو Python
  • أدوات النظام ومكتبته
  • ملفات الإعداد

إنها أشبه بمخطط لإنشاء حاويات Docker، مما يضمن تشغيل تطبيقكم باستمرار عبر بيئات مختلفة.

لماذا نؤتمت عمليات إنشاء صور Docker؟

قد يكون إنشاء صور Docker يدويًا متكررًا وعرضة للأخطاء. وهنا تأتي فائدة الأتمتة!

من خلال دمج عمليات إنشاء صور Docker في خط أنابيب CI/CD باستخدام GitHub Actions، ستحصلون على ما يلي:

  • الاتساق: تتبع كل عملية إنشاء الخطوات نفسها.
  • السرعة: عمليات الإنشاء التلقائية أسرع من اليدوية.
  • الموثوقية: تقليل الأخطاء البشرية.
  • التكامل: بدء عمليات الإنشاء تلقائيًا عند تغيّر التعليمات البرمجية.

وهذه ممارسة أساسية في DevOps الحديثة!

مخطط Dockerfile

إن Dockerfile ملف نصي يحتوي على جميع الأوامر اللازمة لتجميع صورة Docker. إنه أشبه بوصفة.

إليكم مثالًا بسيطًا جدًا على Dockerfile:

FROM alpine:latest
WORKDIR /app
COPY . .
CMD ["echo", "Hello from Docker!"]

فهم Dockerfile

لنحلّل ملف Dockerfile البسيط هذا:

  • FROM alpine:latest: يحدد الصورة الأساسية. نبدأ بتوزيعة Linux صغيرة تُسمى Alpine.
  • WORKDIR /app: يعيّن دليل العمل داخل الصورة.
  • COPY . .: ينسخ جميع الملفات من دليل المشروع إلى الدليل /app داخل الصورة.
  • CMD ["echo", "Hello from Docker!"]: هذا هو الأمر الذي سيُشغّل عند بدء تشغيل حاوية من هذه الصورة.

يوجد هذا الملف في جذر مشروعكم.

إعداد سير العمل

لإنشاء صور Docker باستخدام GitHub Actions، ستنشئون ملف YAML، مثل .github/workflows/docker-build.yml، في مستودعكم.

يحدد هذا الملف سير العمل، وهو سلسلة من الخطوات التلقائية.

يتضمن سير العمل الأساسي لإنشاء صورة عادةً ما يلي:

  1. سحب التعليمات البرمجية الخاصة بكم.
  2. إعداد بيئة إنشاء Docker.
  3. إنشاء صورة Docker.

الخطوة 1: الحصول على التعليمات البرمجية

تتمثل الخطوة الأولى في معظم عمليات سير عمل GitHub Actions في الحصول على التعليمات البرمجية الخاصة بمستودعكم. ويتم ذلك باستخدام الإجراء actions/checkout.

يستنسخ هذا الإجراء مستودعكم إلى المنفّذ، مما يجعل Dockerfile والتعليمات البرمجية للتطبيق متاحين لعملية الإنشاء.

إليكم الشكل الذي ستظهر به هذه الخطوة في ملف سير العمل:

      - name: Checkout repository code
        uses: actions/checkout@v4

الخطوة 2: إعداد Docker Buildx

بعد ذلك، نحتاج إلى إعداد بيئة إنشاء Docker. ويوصى بشدة باستخدام docker/setup-buildx-action.

Buildx مكوّن في Docker يوسّع إمكانات إنشاء Docker، ويدعم ميزات متقدمة مثل الإنشاء لمنصات متعددة.

أضيفوا هذه الخطوة إلى سير العمل:

      - name: Set up Docker Buildx
        uses: docker/setup-buildx-action@v3

الخطوة 3: إنشاء صورة Docker

والآن نصل إلى المهمة الأساسية: إنشاء الصورة! نستخدم لهذا الغرض docker/build-push-action.

الخيارات الأساسية:

  • context: .: يحدد سياق الإنشاء، وعادةً ما يكون جذر المستودع.
  • push: false: سننشئ الصورة حاليًا من دون دفعها إلى سجل. وسنتناول عملية الدفع في درس لاحق.
  • tags: my-app:latest: يعيّن اسمًا ووسمًا للصورة.
      - name: Build and tag Docker image
        uses: docker/build-push-action@v5
        with:
          context: .
          push: false
          tags: my-app:latest

مثال كامل على سير عمل الإنشاء

إليكم سير عمل GitHub Actions كاملًا لإنشاء صورة Docker. تذكّروا أن ملف YAML هذا يُوضع في .github/workflows/docker-build.yml.

سيُشغّل سير العمل هذا عند كل عملية push إلى مستودعكم.

name: Build Simple Docker Image

on: [push]

jobs:
  build-image:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout repository code
        uses: actions/checkout@v4

      - name: Set up Docker Buildx
        uses: docker/setup-buildx-action@v3

      - name: Build and tag Docker image
        uses: docker/build-push-action@v5
        with:
          context: .
          push: false
          tags: my-app:latest

تحقق سريع

لنختبر مدى فهمكم لإنشاء صور Docker باستخدام GitHub Actions.

مراجعة: إنشاء صور Docker

أحسنتم! لقد تعلمتم أساسيات أتمتة إنشاء صور Docker باستخدام GitHub Actions.

لقد تناولنا ما يلي:

  • ما هي صور Docker ولماذا تُعد مهمة.
  • دور Dockerfile بوصفه مخطط الصورة.
  • إعداد سير عمل أساسي في GitHub Actions.
  • استخدام إجراءات أساسية مثل actions/checkout وdocker/setup-buildx-action وdocker/build-push-action.

في الدرس التالي، سنستكشف كيفية دفع هذه الصور المُنشأة إلى سجل حاويات!

الأسئلة الشائعة

هل درس «بناء صور Docker باستخدام Actions» مجاني؟

نعم — نص درس «بناء صور Docker باستخدام Actions» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة DevOps Bootcamp، انتقل إلى CoddyKit PRO. تتضمن دورة DevOps Bootcamp 4 دروس في المجموع.

ماذا ستتعلم في «بناء صور Docker باستخدام Actions»؟

أتمتوا عملية بناء صور Docker لتطبيقاتكم مباشرةً ضمن سير عمل GitHub Actions. تتمرن على DevOps Bootcamp مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ DevOps Bootcamp؟

لا تُشترط خبرة سابقة. DevOps Bootcamp على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 1 من أصل 4.

كم من الوقت يستغرق درس «بناء صور Docker باستخدام Actions»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس DevOps Bootcamp هذا؟

نعم. كل درس في DevOps Bootcamp يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

جميع الدروس في هذه الدورة

  1. بناء صور Docker باستخدام Actions
  2. دفع الصور إلى السجلات
  3. النشر في Kubernetes باستخدام Actions
  4. مخططات Helm وملفات Kubernetes التعريفية في CI/CD
← العودة إلى DevOps Bootcamp