قم بتجميع تطبيقات Rust الخاصة بك باستخدام Docker لتبسيط النشر وضمان الاتساق عبر البيئات المختلفة.
يوفر النقل بالحاويات فوائد أساسية من حيث قابلية النقل والعزل والكفاءة. يتيح النشر المتسق للتطبيقات عبر بيئات مختلفة ويضمن الأمان والاستقرار من خلال عزل التطبيق. كما أنه يحسن استخدام الموارد ، ويبسط عمليات التطوير والإدارة ، ويعزز قابلية التوسع.
يوفر تطبيق Containerizing Rust مع Docker وسيلة موثوقة وفعالة لتطبيقات التعبئة والتغليف وتبعياتها في بيئات محمولة وقائمة بذاتها. يسمح بالتنفيذ السلس عبر أنظمة متنوعة دون القلق بشأن البنية التحتية الأساسية.
إعداد خادم ويب بسيط في Rust With Actix
أنت تستطيع قم بإعداد خادم ويب بسيط في Rust مع Actix وحاويات تطبيقك باستخدام Docker. ستكشف منفذًا من حيث يمكنك الوصول إلى الخادم للطلبات.
قم بتشغيل هذا الأمر لإنشاء مشروع Rust جديد بامتداد مدير طرد البضائع:
البضائع الجديدة بلدي التطبيق
عند إنشاء مشروع Rust جديد ، تضيف Cargo الامتداد شحن ملف إلى الدليل الجذر لمشروعك. افتح ال شحن ملف وإضافة صندوق Actix إلى ملف التبعيات قسم على النحو التالي:
[التبعيات]
أكتيكس ويب = "4.3.1"
إليك كيفية إعداد خادم بسيط في Rust باستخدام صندوق Actix:
يستخدم actix_web:: {get، App، HttpResponse، HttpServer، Responder}؛
// استيراد التبعيات الضرورية من إطار عمل ويب Actix
#[يحصل("/")]
غير متزامنالجبهة الوطنيةمرحبًا() -> ضمني المستجيب {
// تحديد دالة معالج لطلبات GET لمسار الجذر ("/")
// تقوم الوظيفة بإرجاع نوع يقوم بتنفيذ سمة المستجيباستجابة Http ::نعم().جسم("مرحبا بالعالم!")
// إرجاع استجابة HTTP برمز الحالة 200 (موافق)
// ونص استجابة "Hello، World!"
}# [actix_web:: main]
غير متزامنالجبهة الوطنيةرئيسي() -> الأمراض المنقولة جنسياً:: io ::نتيجة {
// نقطة دخول التطبيقHttpServer:: جديد (|| {
// إنشاء مثيل جديد من HttpServerالتطبيق:: new (). service (hello)
// إنشاء مثيل جديد للتطبيق وتسجيل وظيفة hello
}).ربط("127.0.0.1:8080")؟.يجري().انتظر
// ربط الخادم بعنوان IP والمنفذ
// ابدأ الخادم وانتظر اكتماله
}
يقوم البرنامج بإعداد خادم ويب HTTP أساسي مع Actix. ال مرحبًا الوظيفة هي وظيفة معالج تستجيب لطلبات GET على المنفذ 8080 مع "Hello، World!".
ال رئيسي تقوم الدالة بإعداد مثيل خادم بامتداد HttpServer:: جديد وظيفة ويربط الخادم للتشغيل على عنوان المضيف المحلي 127.0.0.1:8080.
الآن ، قم بتنفيذ ملف تشغيل البضائع الأمر لتشغيل خادم الويب. إليك نتيجة فتح العنوان على متصفح الويب.
كتابة ملف Dockerfile لتطبيق Rust الخاص بك
لتعبئة تطبيق Rust الخاص بك باستخدام Docker ، يجب عليك إنشاء ملف ملف Dockerfile وحدد أوامر عملية الحاوية.
ال ملف Dockerfile ليس له امتداد ؛ ما عليك سوى إنشاء ملف ملف Dockerfile ملف. يمكنك أيضًا إنشاء ملف .dockerignore ملف إلى ملفات مجردة في دليل العمل الخاص بك من عملية البناء الخاصة بك.
تحديد الأوامر في ملف Dockerfile الخاص بك
لك ملف Dockerfile سوف يحتوي على أوامر تسحب الصورة الأساسية من مستودع Docker ، قم بتعيين دليل العمل ، وانسخ ملف الملفات ، وبناء التبعيات ، وبناء التطبيق ، وإنشاء الحد الأدنى من الصور ، وتصدير المنفذ ، وتشغيل ملف طلب.
# استخدم أحدث إصدار من صورة قاعدة Rust
من الصدأ: الأحدث# اضبط دليل العمل في الحاوية على / my
عمل /usr/src/my-app# انسخ ملفات مشروع Rust إلى دليل العمل
ينسخ. .# بناء التطبيق Rust
يجري بناء البضائع
# اضبط الأمر لتشغيل تطبيق Rust
CMD تشغيل البضائع
بعد تحديد الأوامر المطلوبة لحاوية تطبيقك ، يمكنك إنشاء حاوية باستخدام هذا الأمر:
docker build -t my-app.
ينشئ الأمر صورة Docker لملف تطبيقي التطبيق مع العلامة تطبيقي من الدليل الحالي.
يمكنك استخدام ال تشغيل عامل ميناء الأمر لتشغيل صورة Docker الخاصة بك.
docker run -p 8080: 8080 my-app
ال - ص 8080: 8080 يقوم الخيار بتعيين منفذ الجهاز المضيف 8080 إلى منفذ الحاوية 8080. سيقوم Docker بإعادة توجيه حركة المرور الموجهة إلى المنفذ 8080 على الجهاز المضيف إلى المنفذ 8080 في الحاوية.
يمكنك إرسال طلبات إلى الحاوية من خلال منفذ المضيف المحلي 8080 للاتصال بخادم الويب.
يتيح تكوين Docker إمكانية تنسيق الحاويات المتعددة
يعد العمل مع حاويات متعددة مهمة شائعة عند إنشاء تطبيقات Docker متطورة. يمكنك استخدام Docker Compose للعمل مع عدة حاويات Docker.
يوفر Docker Compose وظائف لتحديد الخدمات التي يتكون منها تطبيقك ، وتحديد التبعيات بين الخدمات ، تحديد متغيرات البيئة لكل خدمة ، والبدء ، والإيقاف ، وإعادة التشغيل ، وتوسيع نطاق حاويات التطبيق الخاص بك ، وغيرها وظائف.