تطبيق Golang للتشغيل كحاوية Docker

Ttbyq Golang Lltshghyl Khawyt Docker



في هذا البرنامج التعليمي، سنتعلم أساسيات النقل بالحاويات من خلال إعداد تطبيق Golang ليعمل كحاوية Docker. سوف نتعلم كيفية العمل مع ملف Dockerfile لتكوين جميع متطلبات تطبيقنا.

Go هي لغة برمجة مفتوحة المصدر ومكتوبة بشكل ثابت ومجمعة وتشتهر بقدرتها على تسهيل تطوير برامج بسيطة وموثوقة وعالية الكفاءة. يجد فائدة في صياغة تطبيقات متنوعة بما في ذلك تطبيقات الويب، والحلول السحابية الأصلية، وواجهات سطر الأوامر (CLIs)، ومن المثير للاهتمام، أنه حتى Docker نفسه تم تصميمه باستخدام Go.

في حالتنا، قمنا ببناء خادم HTTP بسيط في Go والذي يسمح لنا بتوضيح كيفية إنشاء التطبيق وإرسائه في خطوات بسيطة.







متطلبات:

لمتابعة هذا البرنامج التعليمي، تحتاج إلى الأدوات التالية:



  1. برنامج التحويل البرمجي Go المثبت (الإصدار 1.21 وما فوق مطلوب)
  2. تشغيل Docker Engine على جهازك المضيف
  3. محرر IDE أو نصوص لتحرير تطبيق Go. نوصي باستخدام Visual Studio أو Vim
  4. مترجم سطر الأوامر مثل Bash وZSH وPowerShell وما إلى ذلك.

بعد استيفاء المتطلبات المحددة، فلنتابع ونتعلم كيفية إنشاء التطبيق.



بناء التطبيق

الخطوة التالية هي بناء تطبيقنا. في حالتنا، نقوم بإنشاء خادم HTTP بسيط يستجيب برسالة بسيطة.





ابدأ بإنشاء دليل لتخزين مشروع Go. يمكنك تقديم أي اسم مناسب.

$ mkdir go_server

انتقل إلى الدليل وأنشئ ملفًا جديدًا لتخزين كود المصدر. في حالتنا، نسمي الملف 'main.go' الذي يشير إلى أن الملف عبارة عن كود مصدر Go.



$ يلمس main.go

أخيرًا، قم بتحرير الملف وإضافة الكود المصدري إلى التطبيق كما هو موضح في ما يلي:

الحزمة الرئيسية

يستورد (
'إف إم تي'
'نت/http'
)

func الرئيسي ( ) {
// التعامل مع الطلبات الواردة
http.HandleFunc ( '/' ، وظيفة ( في http.ResponseWriter، ص * http.Request ) {
// اكتب الرد على العميل
fmt.Fprintf ( في , 'من عامل الميناء (:' )
} )

// قم بتشغيل خادم HTTP على المنفذ 8080
fmt.Println ( 'الخادم يعمل على: 8080' )
http.الاستماع والخدمة ( ':8080' لا شيء )
}

يقوم التطبيق السابق بإنشاء خادم HTTP أساسي يرتبط بالمنفذ 8080. ويستجيب الخادم برسالة أساسية كما تم تعريفها مسبقًا.

اختبار التطبيق

قبل أن نقوم بإرساء التطبيق، دعونا نتأكد من أن التطبيق يعمل بشكل صحيح. قم بتشغيل الأمر التالي:

$ انتقل إلى تشغيل main.go

يقوم الأمر السابق بتشغيل التطبيق وإرجاع الرسالة كما يلي:

الخادم يعمل على : 8080

بعد ذلك، لاختبار خادم HTTP، يمكنك تشغيل الأمر 'curl' كما يلي:

$ حليقة http: // المضيف المحلي: 8080 /

يجب أن يعيد الأمر السابق الرسالة كما يلي:

من دوكر ( : %

يمكننا الآن متابعة التطبيق السابق وإرسائه كما هو محدد في الخطوات التالية.

حاوية التطبيق

الخطوات التالية هي مناقشة كيفية إنشاء حاوية للتطبيق. نبدأ بإنشاء ملف Dockerfile في دليل المشروع.

$ قرص مضغوط go_server

قم بإنشاء ملف يسمى Dockerfile بدون أي امتداد وقم بتحرير الملف باستخدام محرر النصوص. يتيح لنا هذا الملف تحديد جميع متطلبات تطبيقنا على النحو التالي:

$ يلمس ملف الإرساء
$ لأن ملف الإرساء

أضف التكوين على النحو التالي:

من الجولانج: 1.21

دير العمل / برنامج

ينسخ . .

RUN اذهب لبناء main.go -O رئيسي .

يفضح 8080

كمد [ './رئيسي' ]

في ملف Dockerfile السابق، قمنا بتحديد العمليات السابقة للتطبيق.

  • اضبط الصورة الأساسية على نسخة صورة Golang الرسمية 1.21.
  • قم بتكوين دليل العمل داخل الحاوية على '/ app'.
  • نقوم بنسخ دليل المشروع بأكمله في الحاوية.
  • أنشئ تطبيق Go داخل الحاوية.
  • قم بكشف المنفذ 8080 للسماح بحركة مرور HTTP الواردة.
  • قم بتعيين الأمر لتشغيل تطبيق Go.

بناء صورة عامل الميناء

لإنشاء صورة للتطبيق، افتح الوحدة الطرفية وانتقل إلى دليل المشروع. بعد ذلك، قم بتشغيل الأمر التالي لإنشاء الصورة:

$ sudo بناء عامل ميناء go_server_docker .

استبدل go_server_docker بالاسم الذي ترغب في تعيين صورة التطبيق له.

بعد إنشاء صورة Docker بنجاح، يمكنك تشغيل حاوية بناءً على تلك الصورة باستخدام الأمر التالي:

$ تشغيل عامل الميناء 8080 : 8080 go_server_docker

يجب أن يقوم الأمر السابق بتعيين المنفذ 8080 من الجهاز المضيف إلى المنفذ 8080 داخل الحاوية.

لاختبار الحاوية، قم بتشغيل الأمر التالي:

$ حليقة http: // المضيف المحلي: 8080

يجب أن يؤدي هذا إلى طباعة الرسالة المحددة في التطبيق.

خاتمة

في هذا البرنامج التعليمي، تعلمنا كيفية إنشاء تطبيق Go الأساسي. لقد تعلمنا أيضًا كيفية وضع التطبيق في حاوية من خلال تحديد المتطلبات في ملف Dockerfile، وبناء الصورة من الحاوية، وتشغيل الحاوية من الصورة.