maven
بيئة تشغيل · Build tool · standard · v3.9.16
صورة أساس لـ JDK مع Apache Maven، تُستخدم كمرحلة بناء لمشاريع Maven؛ شغّل ملف jar الناتج على jre. الإصدار 3.9.
خط الإصدار
يعيش الخط الأحدث في الصفحة الأساسية؛ وللخطوط الأقدم صفحاتها الخاصة لتتمكّن من تثبيت ذلك الإصدار بالضبط والتحقق منه.
تقرير الأمان (Trivy)
تقرير الأمان (Trivy) · maven 3.9.16
الإصدارات المنشورة
3 وسومكل وسم هو فهرس متعدد المعماريات (amd64 + arm64) مثبّت بالبصمة. موسوم بالإصدار، وليس أبدًا :latest.
استخدمها كصورة أساس
أشِر إليها في سطر FROM داخل ملف Dockerfile. تعمل بدون صلاحيات الجذر، بنظام ملفات جذر للقراءة فقط، ومبنية لـ amd64 و arm64.
FROM ghcr.io/quenchworks/images/maven:3.9.16أو اسحبها مباشرة
docker pull ghcr.io/quenchworks/images/maven:3.9.16- خط الإصدار
- 3.9.16
- الخط الأحدث
- 3.9.15, 3.9.14, 3.9.16
- المعماريات
- amd64, arm64
- تعمل كـ
- nonroot (uid 1001)
- نظام الملفات الجذر
- للقراءة فقط
- الرخصة
- Apache-2.0
تحقّق من سلسلة التوريد
هذه الصورة موقّعة بـ cosign وتحمل قائمة مكوّنات SPDX SBOM وشهادة منشأ بناء SLSA على البصمة نفسها. تحقّق من الثلاثة جميعها قبل أن تبني عليها:
# 1. signature — built and signed by QuenchWorks CI
cosign verify ghcr.io/quenchworks/images/maven:3.9.16 \
--certificate-identity-regexp 'https://github.com/quenchworks/.+' \
--certificate-oidc-issuer https://token.actions.githubusercontent.com
# 2. SLSA build provenance — which workflow built it, from what
cosign verify-attestation --type https://slsa.dev/provenance/v1 ghcr.io/quenchworks/images/maven:3.9.16 \
--certificate-identity-regexp 'https://github.com/quenchworks/.+' \
--certificate-oidc-issuer https://token.actions.githubusercontent.com
# 3. SPDX SBOM — the package inventory
cosign verify-attestation --type https://spdx.dev/Document/v2.3 ghcr.io/quenchworks/images/maven:3.9.16 \
--certificate-identity-regexp 'https://github.com/quenchworks/.+' \
--certificate-oidc-issuer https://token.actions.githubusercontent.comراجع دليل SBOM والمنشأ لقراءة قائمة المكوّنات واستخدام هذه الفحوص في التكامل المستمر.
أفضل ممارسة لملف Dockerfile لـ 3.9.16
Resolve dependencies and package the jar with the maven image (local repository cached under /tmp/.m2), then run it on the slim jre base. The build tool and the dependency cache never ship.
# Build stage: resolve dependencies, then package the jar.FROM ghcr.io/quenchworks/images/maven:3.9.16 AS buildUSER rootWORKDIR /appENV MAVEN_OPTS=-Dmaven.repo.local=/tmp/.m2
COPY pom.xml ./RUN ["mvn", "-B", "-Dmaven.repo.local=/tmp/.m2", "dependency:go-offline"]COPY src ./srcRUN ["mvn", "-B", "-o", "-Dmaven.repo.local=/tmp/.m2", "package", "-DskipTests"]
# Runtime stage: run the jar on the slim JRE base, nonroot.FROM ghcr.io/quenchworks/images/jre:25.0.4 AS runtimeWORKDIR /appCOPY --from=build /app/target/*.jar /app/app.jarUSER 1001EXPOSE 8080ENTRYPOINT ["java", "-Djava.io.tmpdir=/tmp", "-jar", "/app/app.jar"]هذا الملف Dockerfile مثبّت على خط 3.9.16 . للاطّلاع على شرح سطرًا بسطر وعلى متغيّرات المنظومات (npm/Yarn، pip/uv/Poetry، Maven/Gradle)، راجع دليل ابنِ تطبيق Java.
المشروع المنبع: https://maven.apache.org