انتقل إلى المحتوى

ابحث في CooLWJ

选择搜索范围,输入关键词后按回车。

اللغة

أفضل 3 طرق لبناء صور Docker باستخدام SpringBoot

ستعرض هذه المقالة 3 تقنيات لبناء تطبيقات SpringBoot على هيئة صور Docker باستخدام Maven.

(1)استخدام المضمّن في spring-boot-maven-plugin build-image.

(2)استخدام أداة Google المسماة jib-maven-plugin。

(3)استخدام dockerfle-maven-plugin。

تطبيق Spring Boot

لتسهيل التطبيق العملي، نحتاج إلى مشروع Spring Boot.

رابط المشروع التجريبي:

https://github.com/davelms/me...

بيئة المشروع:

  • Java 11

  • Maven 3.6.3

استخدام mvn package يمكن بناء حزمة jar بصورة طبيعية.

يمكنه العمل بصورة طبيعية أيضًا:

java -jar target/demo-application-0.0.1-SNAPSHOT.jar

صفحة الاختبار:

http://localhost:8080/hello

أصبح مشروع Demo جاهزًا، وسنبدأ الآن التطبيق العملي لطرق بناء الصور وعددها 3.

أولًا، build-image في إضافة maven الخاصة بـ Spring Boot

يأتي Spring Boot مزودًا مسبقًا بإضافته الخاصة لبناء صور Docker، ولا نحتاج إلى إجراء أي تعديل، لأنها موجودة ضمن spring-boot-starter-parent في pom.xml.

لا تحتاج إلى كتابة Dockerfile، ولا إلى الانشغال بأي شيء آخر؛ فالإضافة تتولى كل ذلك عنك، مثل مسائل الأمان والذاكرة والأداء التي توصي بها Spring.

يكفي ببساطة تنفيذ:

mvn spring-boot:build-image

بعد اكتمال التنفيذ، ستظهر رسالة تفيد بالنجاح:

تشغيل الحاوية للاختبار:

docker run -p 9090:8080 -t demo-application:0.0.1-SNAPSHOT

ملاحظة:منفذ الجهاز المحلي المعين هنا هو 9090。

ثانيًا، jib-maven-plugin

Jib إضافة لـ Maven وGradle تُستخدم لإنشاء صور Docker.

لهذه الإضافة سمة واضحة جدًا:لا حاجة إلى تثبيت Docker محليًا، وهذا مريح جدًا للتكامل المستمر، إذ يستطيع Jib الدفع مباشرة إلى مستودع Docker المحدد.

لا يتطلب Jib أيضًا كتابة Dockerfile.

كما أنه سهل الاستخدام جدًا، ولا يحتاج إلى تعديل الشيفرة، ويمكن أيضًا إبقاء pom.xml دون تعديل.

يكفي تنفيذ:

mvn compile com.google.cloud.tools:jib-maven-plugin:2.3.0:dockerBuild
  • mvn compile

هو أمر التجميع maven الذي نعرفه جيدًا.

  • com.google.cloud.tools:jib-maven-plugin:2.3.0

يحدد استخدام إضافة Jib

  • dockerBuild

هو هدف التنفيذ لإضافة Jib،dockerBuild يحدّد أن يستخدم Jib برنامج Docker المثبّت محليًا لدينا.

بعد اكتمال التنفيذ، ستظهر رسالة تفيد بالنجاح:

تشغيل الحاوية للاختبار:

docker run -p 9091:8080 -t demo-application:0.0.1-SNAPSHOT

ملاحظة:منفذ الجهاز المحلي المعين هنا هو 9091。

ثالثًا، dockerfile-maven-plugin

تتطلّب هذه الإضافة أن نكتب Dockerfile، وهو مُعدّ بالفعل في مشروع Domo.

يجب وضع Dockerfile في المجلد الجذري للمشروع، إلى جانب pom.xml.

ثم نحتاج إلى إضافة بعض الإعدادات في pom.xml، لتحديد المستودع ووسم tag، وكذلك ما جرى تعريفه في Dockerfile أعلاه من JAR_FILE。

تنفيذ mvn package ستُبنى الصورة تلقائيًا عندئذٍ، وبعد اكتمال التنفيذ ستظهر الرسالة التالية:

صورة

تشغيل الحاوية:

docker run -p 9092:8080 -t demo-application:0.0.1-SNAPSHOT

ملاحظة:المنفذ المحلي الذي جرى ربطه هو 9092。

خلاصة

من بين هذه الطرق الـ 3، تُعدّ الطريقة الأصلية في SpringBoot الأسهل، إذ لا تحتاج إلى فعل أي شيء بنفسك، ويمكن استخدامها مباشرة.

أكثرها تميزًا هو Jib، إذ لا يتطلب تثبيت Docker محليًا، ويمكنه الدفع مباشرةً إلى المستودع المحدد، كما أن استخدامه بسيط جدًا.

يبدو أن الإضافة dockerfile-maven-plugin هي الأكثر إزعاجًا، إذ تتطلب كتابة Dockerfile وإضافة إعدادات أيضًا،لكن، وهو في الواقع الأسهل استخدامًا، لأن الخيارين السابقين وعددهما 2 مرتبطان ببيئة الشبكة (أنت تعرف المقصود)، وحتى إذا ضبطت صورة Docker فستظهر أخطاء؛ يمكنك التجربة.

صورة موضوعية عن Spring Boot وMaven وبناء صور Docker


التعليقات

جارٍ الإرسال

اختر المظهر المفضل

يُطبّق المظهر على الموقع كله.