تتمثل إحدى المزايا الرئيسية لـ Docker في أنه يسمح لك بتشغيل مشاريع البرامج دون الحاجة إلى إعداد بيئات تطوير معقدة.
سيوضح لك هذا الدليل كيفية إنشاء صورة Docker لواجهة برمجة تطبيقات الويب .NET 5 Web. يمكنك بعد ذلك استخدام الصورة لتشغيل رمز الواجهة الخلفية من أي جهاز كمبيوتر مثبت عليه Docker والتفاعل مع واجهة برمجة التطبيقات من مشروع الويب الأمامي الخاص بك أو تطبيق الهاتف المحمول.
إنشاء .NET 5 Web API
يعد كل من Docker و .NET 5 مفتوح المصدر ومتعدد الأنظمة الأساسية ، وبالتالي يمكنك اتباع هذا الدليل سواء كنت تستخدم macOS أو Windows أو Linux.
استخدم dotnet CLI لإنشاء مشروع ASP.NET Web API باستخدام الأمر التالي:
dotnet new webapi -o aspdockerapi
يقوم الأمر أعلاه بإنشاء مشروع باسم أسبدوكيرابي ويضعها في مجلد يحمل نفس الاسم. بالإضافة إلى ذلك ، يقوم التطبيق بتدعيم وحدة تحكم API ببعض عينات بيانات توقعات الطقس.
ملحوظة: إذا لم يكن لديك NET 5 مثبتًا على جهاز الكمبيوتر الخاص بك ، فيمكنك تنزيله من الرابط أدناه.
تحميل: NET 5 لنظام التشغيل Windows و macOS و Linux
بمجرد إنشاء المشروع ، يمكنك الانتقال إلى المجلد الجذر للمشروع باستخدام الأمر التالي.
قرص مضغوط aspdockerapi
يمكنك تشغيل وخدمة واجهة برمجة تطبيقات الويب باستخدام الأمر أدناه.
تشغيل دوت نت
بشكل افتراضي ، سيتم تقديم التطبيق على المنفذ 5001. يمكنك عرض بيانات نموذجية للتطبيق في متصفحك على عنوان URL التالي: https://localhost: 5001 / Weatherforecast ويجب أن تبدو بيانات واجهات برمجة التطبيقات على النحو التالي.
يتعلم أكثر: ما هو API؟
إنشاء تعليمات صورة Docker
لإنشاء صورة Docker ، تحتاج إلى إعطاء Docker Engine بعض الإرشادات حول كيفية إنشائها. يجب وضع هذه التعليمات في ملف باسم ملف Dockerfile. لاحظ أن الملف ليس له امتداد.
استخدم الأمر التالي لإنشاء ملف ملف Dockerfile في المجلد الجذر لمشروع التطبيق الخاص بك.
المس Dockerfile
بعد إنشاء ملف ملف Dockerfile، يجب أن يكون هيكل مجلد مشاريعك مشابهًا للهيكل أدناه:
الآن ، انسخ والصق الرمز أدناه في ملف ملف Dockerfile.
من mcr.microsoft.com/dotnet/aspnet: 5.0-focal AS base
WORKDIR / التطبيق
اكسبوس 80
من mcr.microsoft.com/dotnet/sdk: 5.0-focal AS build
WORKDIR / SRC
نسخ ["aspdockerapi.csproj"، "./"]
استعادة RUN dotnet "./aspdockerapi.csproj"
ينسخ. .
WORKDIR "/ src /."
RUN dotnet بناء "aspdockerapi.csproj" -c Release -o / app / build
من بناء AS نشر
RUN dotnet تنشر "aspdockerapi.csproj" -c Release -o / app / publish
من القاعدة كنهائي
WORKDIR / التطبيق
نسخ - من = نشر / تطبيق / نشر.
ENTRYPOINT ["dotnet"، "aspdockerapi.dll"]
ملحوظة: في Dockerfile أعلاه ، أسماء المشروع و dll هي aspdockerapi.csproj و ملف aspdockerapi.dll على التوالي ، إذا كان لمشروعك اسم مختلف ، فتأكد من تحديث Dockerfile بالأسماء الصحيحة.
فهم تعليمات Dockerfile
ال ملف Dockerfile يتكون أساسًا من الكلمات الرئيسية لملف Dockerfile ، والتي تعد كلمات بحروف كبيرة. تحدد الكلمات الأساسية التعليمات المطلوب تنفيذها في كل طبقة من صورة Docker. فيما يلي الكلمات الأساسية الرئيسية لـ Docker التي يستخدمها Dockerfile أعلاه.
1. من عند
ال من عند تحدد الكلمة الأساسية الصورة الأساسية التي نريد بناء صورتنا عليها. في Dockerfile أعلاه ، الصورة الأساسية الأولية هي صورة .NET 5 من Microsoft. تحتوي الصورة الأساسية .NET 5 على المكونات الضرورية لتشغيل التطبيق.
2. عمل
عمل يحدد دليل العمل أو السياق داخل الصورة. في هذا المثال ، فإن ملف /app يتم تعيين الدليل كدليل عمل جذر افتراضي باستخدام العبارة التالية WORKDIR / التطبيق.
3. ينسخ
ال ينسخ تقوم الكلمة الأساسية بنسخ المحتوى من مجلد ووضعه في مجلد آخر. في هذا المثال ، يتم استخدامه مبدئيًا لنسخ ملف المشروع الرئيسي ، أي أسبدوكيرابي.كسبروج في دليل عمل الصور.
4. يركض
ال يركض تُستخدم الكلمة الأساسية لتشغيل أمر Linux معين داخل صورة Docker. في ال ملف Dockerfile فوق ال يركض يتم استخدام الأمر لاستعادة التبعيات وبناء مشروع ASP.NET ونشر المشروع.
5. CMD
ال CMD الكلمة الرئيسية تشبه إلى حد ما يركض الكلمة الرئيسية التي تمت مناقشتها أعلاه. يتم استخدامه أيضًا في تشغيل أمر Linux ، ولكن على عكس يركض الكلمة الأساسية التي تقوم بتشغيل أوامر لبناء الصورة ، و CMD تُستخدم الكلمة الأساسية لتشغيل أوامر Linux عند بدء تشغيل الصورة ، في مثيل حاوية.
6. تعرّف
ال تعرض تُستخدم الكلمة الأساسية لعرض منفذ داخل صورة Docker للعالم الخارجي. في هذه الحالة ، تعرض الصورة المنفذ 80 ، والذي يتم استخدامه لفضح واجهة برمجة التطبيقات عند تشغيل حاوية Docker.
بناء صورة Docker
لبناء صورة Docker بناءً على ملف ملف Dockerfile ، ما عليك سوى تشغيل الأمر التالي داخل المجلد الجذر للمشروع ، أي مكان ملف ملف Dockerfile وضعت.
بناء عامل ميناء -t dockerwebapi -f Dockerfile.
يقوم الأمر أعلاه بتمييز صورة Docker بالاسم dockerwebapi ويحدد أيضًا أن الإرشادات الخاصة ببناء هذه الصورة موجودة في ملف ملف Dockerfile.
بعد الانتهاء من إنشاء الصورة ، يمكنك التحقق مما إذا كانت مدرجة كصورة Docker محلية باستخدام الأمر التالي:
صور عامل ميناء
يجب أن يكون الإخراج من الأمر أعلاه مشابهًا للإخراج أدناه ، والصورة (dockerwebapi) في السطر الأول في هذه الحالة.
إذا لم يكن لديك Docker مثبتًا على جهاز الكمبيوتر الخاص بك ، إليك كيفية تثبيت docker على Ubuntu Linux، أو استخدم الرابط أدناه لتنزيل Docker وتثبيته.
تحميل: دليل تنزيل Docker وتثبيته
تشغيل صورة Docker
لتشغيل صورة Docker التي تم إنشاؤها حديثًا ، استخدم الأمر التالي. ال -ti يحدد الخيار أنه يجب تشغيل الصورة في وضع طرفي تفاعلي ، و --rm ينص على وجوب إزالة الحاوية فور خروجها.
docker run -ti --rm -p 8080: 80 dockerwebapi
أيضًا ، يحدد الأمر أن حاوية Docker يجب أن تعمل على منفذ HTTP 8080 ، والذي يعيّن المنفذ 80 داخل contianer.
انتقل إلى URL: http://localhost: 8080 / WeatherForecast في متصفحك وستجد بيانات API يتم تقديمها من مثيل Docker الذي تقوم بتشغيله.
لماذا تستخدم Docker؟
يوضح لك هذا الدليل كيفية إنشاء صورة Docker لواجهة برمجة تطبيقات الويب .NET 5.
باستخدام Docker ، يمكنك أتمتة كيفية نشر تطبيقاتك ، وتبسيط إعداد بيئات تطوير البرامج ، وتيسير التعاون مع زملائك من مهندسي البرامج.
يوفر Docker أيضًا العديد من المزايا مقارنة بتقنيات المحاكاة الافتراضية الأخرى ، ولهذا السبب ربما يجب عليك التفكير في استخدامه في مشاريع هندسة البرمجيات الخاصة بك.
يوفر Docker العديد من المزايا مقارنة بجهاز افتراضي ، وهناك أسباب لبدء استخدامه اليوم.
اقرأ التالي
- برمجة
- تطوير الشبكة
- عامل ميناء
- ASP.NET
تقوم Mwiza بتطوير البرامج حسب المهنة وتكتب على نطاق واسع على Linux والبرمجة الأمامية. تشمل بعض اهتماماته التاريخ والاقتصاد والسياسة والهندسة المعمارية للمؤسسات.
اشترك في نشرتنا الإخبارية
انضم إلى النشرة الإخبارية لدينا للحصول على نصائح تقنية ومراجعات وكتب إلكترونية مجانية وصفقات حصرية!
خطوة أخرى أيضا…!
يرجى تأكيد عنوان بريدك الإلكتروني في البريد الإلكتروني الذي أرسلناه لك للتو.