حاويات تطبيقات C# باستخدام Docker: دليل خطوة بخطوة

مدرب بايثون أونلاين للمبتدئين

تعلم Python بسهولة دون إرهاق نظري. حل مهام عملية مع التحقق التلقائي واكتب الكود مباشرة في المتصفح.

ابدأ الدورة

لماذا يحتاج مشروع C# الخاص بك إلى Docker؟

\n\n

تخيل الموقف التالي: لقد كتبت تطبيق C# رائع على حاسوبك المحمول الذي يعمل بنظام Windows 11، وقمت بتثبيت جميع المكتبات، وأعددت قاعدة البيانات، وهو يعمل بشكل مثالي. ولكن عندما تسلم المشروع لزميل يعمل على macOS أو ترفعه إلى خادم Linux، تبدأ المشاكل: "لدي إصدار مختلف من .NET"، "أين SQL Server؟"، "لديك مسار ثابت للملفات في الكود"... هل يبدو هذا مألوفًا؟

\n\n

هنا يأتي دور حاويات تطبيقات C# باستخدام Docker. يتيح لك Docker حزم تطبيقك مع جميع التبعيات والإعدادات وحتى نظام التشغيل في حاوية خفيفة. وسيعمل بنفس الطريقة في كل مكان: على جهاز الكمبيوتر الشخصي الخاص بك، على خادم زميلك، في السحابة AWS أو Azure.

\n\n

في هذه المقالة، سنشرح كيفية حاوية تطبيقات C# باستخدام Docker من الألف إلى الياء. ستتعلم كيفية إنشاء Dockerfile لـ ASP.NET Core، وكيفية تحسين حجم الصورة، وكيفية تشغيل كل ذلك بأمر واحد. هيا بنا!

\n\n

ما هو Docker وما فائدته لمطور C#؟

\n\n

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

\n\n

بالنسبة لمطور .NET، يوفر Docker العديد من الميزات القاتلة:

\n\n
    \n
  • القضاء على مشكلة "يعمل على جهازي" — تضمن الحاوية بيئة متطابقة
  • \n
  • تبسيط CI/CD — تقوم ببناء الصورة مرة واحدة واستخدامها في كل مكان
  • \n
  • هندسة الخدمات المصغرة — كل خدمة C# تعيش في حاويتها الخاصة
  • \n
  • قابلية التوسع — تشغيل 10 نسخ من API الخاص بك بسهولة في ثوانٍ
  • \n
  • العزل — تبعيات مشروع واحد لا تتعارض مع مشروع آخر
  • \n
\n\n

إذا كنت لا تستخدم حاويات تطبيقات .NET بعد، فقد حان الوقت للبدء. وسنفعل ذلك الآن.

\n\n

التحضير: ما تحتاج إلى تثبيته

\n\n

قبل البدء في حاوية C#، تأكد من تثبيت ما يلي:

\n\n
    \n
  1. Docker Desktop — قم بتنزيله من الموقع الرسمي. لنظام Windows، تأكد من تفعيل WSL 2 (ستظهر تلميحات أثناء التثبيت).
  2. \n
  3. .NET SDK 8.0 (أو 7.0/9.0 — ليس مهمًا) — قم بتنزيله من Microsoft.
  4. \n
  5. VS Code أو Visual Studio 2022 — للعمل المريح مع الكود.
  6. \n
\n\n

تحقق من التثبيت باستخدام الأوامر في الطرفية:

\n\n
docker --version\ndotnet --version
\n\n

إذا أعاد كلا الأمرين رقم الإصدار — فكل شيء جاهز لتطوير Docker لـ .NET.

\n\n

إنشاء تطبيق C# بسيط للحاوية

\n\n

للتجربة، سنستخدم ASP.NET Core Web API بسيط. سننشئ المشروع في مجلد فارغ:

\n\n
dotnet new webapi -n MyDockerApp\ncd MyDockerApp
\n\n

افتح ملف Program.cs وبسّطه إلى الشكل التالي (لتوضيح الفكرة):

\n\n
var builder = WebApplication.CreateBuilder(args);\nvar app = builder.Build();\n\napp.MapGet("/", () => "Hello from Dockerized C# App!");\n\napp.Run();
\n\n

قم بتشغيله محليًا للتأكد من أن كل شيء يعمل:

\n\n
dotnet run
\n\n

انتقل في المتصفح إلى http://localhost:5000 (أو المنفذ الذي يظهره الطرفية). هل ترى الترحيب؟ ممتاز. الآن سنحزم هذا التطبيق في Docker.

\n\n

كتابة Dockerfile لتطبيق C#

\n\n

Dockerfile هو تعليمات لبناء الصورة. بالنسبة لـ <

المدونات

توصيات الكتب