حاويات JVM
يأتي Elide مع أداة حاويات مدمجة.
يتم الكشف عنها بطريقتين.
- الاستخدام كبديل مباشر — يمرر
elide jib -- [OPTION...] الوسائط مباشرة إلى أداة jib المدمجة. - التكامل مع نظام البناء — ينشئ
elide build الحاويات تلقائياً بناءً على التصريحات في elide.pkl.
الاستخدام كبديل مباشر
يتم استدعاء الاستخدام كبديل مباشر عبر elide jib -- ويعمل بشكل مطابق لأمر jib العادي.
تستخدم استدعاءات elide jib التنسيق التالي:
elide jib -- < jib options> <source files>يفصل -- بين خيارات Elide وخيارات jib المحددة.
لا توجد خيارات خاصة بـ Elide قبل -- في الوقت الحالي. لا يزال فاصل -- مطلوباً.
| الأمر | الوصف |
|---|---|
build | بناء حاوية. |
jar | حاوية لملف jar. |
war | حاوية لملف war. |
أمر Build
ينشئ أمر build صورة حاوية من ملف بناء Jib بتنسيق YAML.
elide jib -- build -t < target-image> -b < build-file> [options]| العلَم | الوصف |
|---|---|
-t، —target=IMAGE | مرجع صورة الوجهة أو عنوان URL بأسلوب Jib (مطلوب). |
-b، —build-file=PATH | مسار ملف البناء (الافتراضي: jib.yaml). |
-c، —context=DIR | مجلد جذر سياق البناء. |
—name=IMAGE | مرجع الصورة لإدخاله في تكوين tar (مطلوب عند استخدام tar://). |
-p، —parameter=NAME=VALUE | معامل قالب لإدخاله في ملف البناء (قابل للتكرار). |
—additional-tags=TAG[,TAG...] | علامات إضافية للصورة الهدف. |
—base-image-cache=DIR | مسار ذاكرة التخزين المؤقت للصورة الأساسية. |
—project-cache=DIR | مسار ذاكرة التخزين المؤقت للمشروع. |
—image-metadata-out=PATH | مسار ملف JSON لبيانات الصورة الوصفية بعد البناء. |
—verbosity=LEVEL | تعيين مستوى التفصيل في السجل: quiet، error، warn، lifecycle، info، debug (الافتراضي: lifecycle). |
—console=TYPE | تعيين نوع إخراج وحدة التحكم: auto، rich، plain (الافتراضي: auto). |
—allow-insecure-registries | السماح بالاتصال بالسجلات عبر HTTP. |
—send-credentials-over-http | السماح بإرسال بيانات الاعتماد عبر HTTP. |
تنسيقات الهدف
يقبل علَم --target عدة مخططات لعناوين URL.
| التنسيق | الوصف |
|---|---|
registry://IMAGE | الدفع إلى سجل حاويات |
docker://IMAGE | التحميل إلى خدمة Docker المحلية |
tar://PATH | الكتابة إلى أرشيف tar (يتطلب —name) |
gcr.io/project/image | الدفع مباشرة إلى سجل بالمرجع |
خيارات المصادقة
يمكن توفير بيانات الاعتماد بعدة طرق.| العلَم | الوصف |
|---|---|
—credential-helper=HELPER | مساعد بيانات الاعتماد لكلا السجلَّين |
—username=USER | اسم المستخدم لكلا السجلَّين |
—password=PASS | كلمة المرور لكلا السجلَّين |
—from-credential-helper=HELPER | مساعد بيانات الاعتماد لسجل الصورة الأساسية |
—from-username=USER | اسم المستخدم لسجل الصورة الأساسية |
—from-password=PASS | كلمة المرور لسجل الصورة الأساسية |
—to-credential-helper=HELPER | مساعد بيانات الاعتماد لسجل الهدف |
—to-username=USER | اسم المستخدم لسجل الهدف |
—to-password=PASS | كلمة المرور لسجل الهدف |
تنسيق ملف البناء
يستخدم Jib ملف بناء بتنسيق YAML لتعريف صورة الحاوية. لمعرفة المزيد حول jib.yaml، راجع صفحة jib-cli على GitHub.
مثال على استخدام أمر Build
بالنظر إلى مشروع يحتوي على ملف بناء jib.yaml، يمكنك بناء حاوية وتحميلها إلى Docker.
elide jib -- build -t docker://my-app:latest -b jib.yamlللبناء والكتابة إلى أرشيف tar بدلاً من ذلك:
elide jib -- build -t tar://my-app.tar --name my-app:latest -b jib.yamlللدفع إلى سجل بعيد:
elide jib -- build -t registry://gcr.io/my-project/my-app:latest -b jib.yamlأمر Jar
يقوم أمر jar بحاوية ملف JAR موجود مباشرة، بدون ملف بناء.
elide jib -- jar -t < target-image> [options] < jar-file>مثال على استخدام أمر Jar
لحاوية ملف JAR وتحميله إلى Docker:
elide jib -- jar -t docker://my-app:latest --from eclipse-temurin:25-jre app.jarالتكامل مع نظام البناء
عند استخدام elide build مع ملف مشروع elide.pkl، يمكن التصريح ببناءات صور الحاويات كقطع أثرية وبناؤها تلقائياً.
التصريح بصور الحاويات
يتم التصريح بصور الحاويات في كتلة artifacts من ملف elide.pkl باستخدام نوع ContainerImage من elide:Container.pkl. تتطلب الحاوية مصدراً صالحاً وحزمة JVM مُصرَّح بها.
amends "elide:project.pkl"
import "elide:Sources.pkl" as Sources
import "elide:Container.pkl" as Container
import "elide:Jvm.pkl" as Jvm
sources {
["main"] = new Sources.SourceSetSpec {
paths {
"./src/HelloWorld.java"
}
}
}
jvm {
main = "dev.main"
}
artifacts {
["main-jvm"] = new Jvm.Jar {
sources {
"main"
}
}
["container"] = new Container.ContainerImage {
from {
"main-jvm"
}
output = "daemon"
}
}خصائص صورة الحاوية
| الخاصية | النوع | الافتراضي | الوصف |
|---|---|---|---|
from | Listing<String> | {} | أسماء القطع الأثرية التي يتم بناء صورة الحاوية منها |
image | String? | — | إحداثيات الصورة الهدف |
base | String? | — | الصورة الأساسية المستخدمة للحاوية |
tags | Listing<String> | {} | العلامات المراد تطبيقها على صورة الحاوية |
output | ContainerOutputMode | "daemon" | وضع الإخراج: daemon أو registry أو tarball |
format | ContainerFormat | "docker" | تنسيق الصورة: docker أو oci |
أوضاع الإخراج
تتحكم خاصية output في مكان نشر صورة الحاوية المبنية.
| الوضع | الوصف |
|---|---|
daemon | النشر إلى خدمة Docker المحلية |
registry | الدفع مباشرة إلى السجل المحدد في إحداثيات الصورة |
tarball | الكتابة إلى ملف tarball محلي يمكن استيراده يدوياً إلى Docker |
تنسيقات الصور
| التنسيق | الوصف |
|---|---|
docker | صورة Docker |
oci | تنسيق صور مبادرة الحاويات المفتوحة (OCI) |
مثال على استخدام نظام البناء
بالنظر إلى ملف elide.pkl التالي:
amends "elide:project.pkl"
import "elide:Sources.pkl" as Sources
import "elide:Jvm.pkl" as Jvm
import "elide:Container.pkl" as Container
sources {
["main"] = new Sources.SourceSetSpec {
paths {
"src/main/java<<>>*.java"
}
}
}
artifacts {
["app-jar"] = new Jvm.Jar {
from { "main" }
}
["app-image"] = new Container.ContainerImage {
from { "app-jar" }
image = "my-app"
base = "eclipse-temurin:25-jre"
tags { "latest" }
output = "daemon"
}
}سيقوم تشغيل elide build بترجمة المصادر وتحزيم ملف JAR وبناء صورة الحاوية تلقائياً.