المشروع الموجه: واجهة برمجية (API) + قاعدة في حاويات، مسلمة في التكامل المستمر (CI)

المشروع الموجه — واجهة برمجية (API) + قاعدة في حاويات، مسلمة في التكامل المستمر (CI)

⬇️ حمّل compose المثال (YML) ⬇️ حمّل Dockerfile المثال ⬇️ المذكرة المساعدة لـ Docker ‏(TXT)

الخطوة 0 · المستوى 0 — بيئة جاهزة

ثبّت Docker، وتحقق من hello-world، وأنشئ المجلد projet/mon-app مع api/ وcompose.yml و.github/workflows. يجب أن يكون طقس run/ps/stop/rm سلسًا.

الخطوة 1 · المستوى 1 — خدمات Hub موصولة

شغّل postgres:16.4 مع المجلد pgdata على الشبكة monapp (دون نشر القاعدة). شغّل adminer في ملف dev. أثبت rm + إعادة التشغيل دون فقدان والوصول بالاسم.

الخطوة 2 · المستوى 2 — صورة محلية محصنة

اكتب Dockerfile للـ api ‏(slim، الاعتماديات أولًا، USER node، ‏.dockerignore)، وابنِ mon-app:1.0، وافحص، وصحح حتى صفر حرج.

الخطوة 3 · المستوى 3 — مكدس Compose كامل

جمّع api ‏(build) + قاعدة البيانات bdd ‏(مجلد (Volume)) + ‏adminer ‏(ملف dev) مع DATABASE_URL كمتغير، وdepends_on بسيط ثم retry تطبيقي. تحقق من config وup --build وdown/up دون فقدان.

الخطوة 4 · المستوى 4 — موثوق ومسلّم في التكامل المستمر (CI)

أضف restart + فحص الصحة (healthcheck) للقاعدة bdd + شرط healthy، ووكيلًا منشورًا وحده، ونسخة dump احتياطية + لقطة (snapshot) مختبرة، وسير عمل (Workflow) للتكامل المستمر (CI) يبني + يدفع SHA نحو GHCR.

الخطوة 5 · المستوى 5 — جاهز لما بعد

دقق بقائمة 5.4 ‏(8 نعم)، وجرّب Swarm في عقدة واحدة (3 نسخ (replicas))، وانشر K8s الأدنى على kind. خطط لشهادة DCA.

معايير النجاح