צינור ה-CI שלך מבזבז 15 דקות על הורדת תלותי Maven ממאגרים חיצוניים. Docker Hub מגביל אותך עם מכסות קצב, ומאגר ה-npm איטי בעומס. Nexus Repository Manager פותר את כל שלוש הבעיות בכלי אחד. הוא שומר במטמון ארטיפקטים לאחר הבקשה הראשונה, מספק Docker Registry פרטי, ומשמש כנקודת קצה אחת לכל מנהלי החבילות. חיסכון משוער בתעבורה: עד $200 לחודש עבור צוות בינוני, האצת בנייה עד פי 90.
צור איתנו קשר לקבלת ביקורת — נעריך את התשתית שלך. למהנדסים שלנו יש ניסיון של 10+ שנים בניהול Nexus על אשכולות Kubernetes ושרתים פיזיים, עם 40+ פרויקטים מוצלחים.
כיצד Nexus מאיץ בניות
Nexus שומר במטמון תלותים לאחר ההורדה הראשונה. בבניות הבאות, ארטיפקטים נשלחים מאחסון מקומי. זמן ההשהיה יורד מ-15 דקות לפחות מ-10 שניות. זה בולט במיוחד במהלך הפעלות חוזרות של קונטיינרים ב-CI.
סוגי מאגרים ומתי להשתמש בהם
Nexus עובד עם שלושה סוגי מאגרים:
| סוג | מטרה | כתובת לדוגמה |
|---|---|---|
Proxy |
משקף מקור חיצוני | maven-central → https://repo1.maven.org/maven2/ |
Hosted |
מאחסן ארטיפקטים משלך | maven-releases, docker-internal |
Group |
משלב proxy ו-hosted לנקודת קצה אחת | maven-public (כולל releases, snapshots, central) |
תצורת Maven אופיינית:
maven-public (group)
├── maven-releases (hosted)
├── maven-snapshots (hosted)
└── maven-central (proxy → https://repo1.maven.org/maven2/)ב-maven-public (group) ├── maven-releases (hosted) ├── maven-snapshots (hosted) └── maven-central (proxy → https://repo1.maven.org/maven2/) , מפתחים צריכים רק לציין ~/.m2/settings.xml.
למה לבחור ב-Nexus על פני Artifactory?
Nexus Open Source הוא חינמי ואינו דורש רישוי. הוא פשוט יותר להגדרה: תרחיש בסיסי לוקח חצי מהזמן בהשוואה ל-Artifactory. עם זאת, הוא מספק פונקציונליות מספקת לרוב החברות הבינוניות. הוא תומך ב-Maven, npm, Docker, PyPI ועוד.
השוואת רישיונות: Artifactory Pro מתחיל ב-$12,000 לשנה עבור 5 משתמשים, Nexus OSS עולה $0. ההבדל בביצועים זניח עם אותם משאבים.
התקנה ותצורה מינימלית
Nexus OSS מופץ כקובץ tar.gz וכתמונת Docker. לייצור, אנו ממליצים על Docker עם נפח נתונים חיצוני:
---
version: "3"
services:
nexus:
image: sonatype/nexus3:3.68.0
volumes:
- nexus-data:/nexus-data
ports:
- "8081:8081"
- "8082:8082" # Docker registry port
environment:
- INSTALL4J_ADD_VM_PARAMS=-Xms2703m -Xmx2703m -XX:MaxDirectMemorySize=2703m
restart: unless-stopped
volumes:
nexus-data:
פרמטרי JVM הם קריטיים. התיעוד של Sonatype ממליץ להקצות לפחות 2/3 מהזיכרון הזמין ל-Nexus — על מארח עם 8 GB, הגדר http://nexus.company.com/repository/maven-public/. זיכרון לא מספק מוביל ל-version: "3" services: nexus: image: sonatype/nexus3:3.68.0 volumes: - nexus-data:/nexus-data ports: - "8081:8081" - "8082:8082" # Docker registry port environment: - INSTALL4J_ADD_VM_PARAMS=-Xms2703m -Xmx2703m -XX:MaxDirectMemorySize=2703m restart: unless-stopped volumes: nexus-data: במהלך פעולות אינטנסיביות של Docker registry.
סיסמת האדמין הראשונית לאחר ההפעלה הראשונה נמצאת ב--Xmx4g.
הגדרת Docker Registry
Nexus יכול לשמש כ-Docker registry — hosted עבור תמונות פרטיות ו-proxy עבור Docker Hub (עקיפת מגבלות קצב):
docker-hub (proxy → https://registry-1.docker.io) → порт 8083
docker-internal (hosted) → порт 8082
docker-all (group) → порт 8084כל מאגר Docker דורש פורט HTTP נפרד — מגבלה של פרוטוקול Docker Registry v2. ב-Nginx, הוסף location עבור כל פורט או השתמש בתת-דומיינים.
אימות CI:
docker login nexus.company.com:8082 -u ci-user -p $NEXUS_PASSWORD docker push nexus.company.com:8082/myapp:1.0.0 אבטחה ותפקידים
כברירת מחדל, Nexus יוצר תפקידים /nexus-data/admin.password, docker-hub (proxy → https://registry-1.docker.io) → порт 8083 docker-internal (hosted) → порт 8082 docker-all (group) → порт 8084 , docker login nexus.company.com:8082 -u ci-user -p $NEXUS_PASSWORD docker push nexus.company.com:8082/myapp:1.0.0 . לייצור, אנו ממליצים:
- השבת גישה אנונימית (Administration → Security → Anonymous Access).
- יצירת תפקידים נפרדים עבור CI (
nx-adminעם הרשאות על מאגרים ספציפיים) ומפתחים (קריאה בלבד על מאגרי proxy). - הגדרת אינטגרציית LDAP לאימות ארגוני.
הרשאות מוקצות ברמת המאגר באמצעות Repository Content Selectors — ניתן להגביל משתמש CI לקבוצות חבילות ספציפיות.
השוואת Nexus OSS לעומת Pro
| תכונה | OSS | Pro |
|---|---|---|
| מחיר | חינם | החל מ-$12,000 לשנה |
| אחסון ארטיפקטים | Maven, npm, Docker, PyPI, NuGet | הכל ב-OSS + RAW, APT, YUM |
| תפקידים ואבטחה | LDAP, Basic | LDAP, SAML, SSO, Crowd |
| מדיניות ניקוי | ידני דרך הממשק | מדיניות אוטומטית + תזמון |
| מכסות אחסון | לא | כן (מגבלות לפרויקט) |
עבור רוב החברות, גרסת OSS מספיקה. Pro מוצדקת כאשר יש דרישות תאימות מחמירות או צורך באינטגרציית SAML.
ניקוי ארטיפקטים ומדיניות ניקוי
ללא מדיניות ניקוי, Nexus גדל ללא הגבלה. צור מדיניות ניקוי עבור:
-
nx-anonymous: מחיקת ארטיפקטים מסוג SNAPSHOT ישנים מ-30 יום שלא נגשו אליהם ב-7 הימים האחרונים. -
nx-deploy: מחיקת תמונות Docker ללא תג ישנות מ-7 ימים.
מדיניות מוחלת על מאגרים ב-Administration → Repository → Cleanup Policies. שירות הניקוי רץ לפי לוח זמנים (ברירת מחדל: פעם ביום).
לאחר הניקוי, תמיד הפעל Compact Blob Store — אחרת, שטח הדיסק לא מתפנה; הנתונים רק מסומנים כמחוקים.
תוכנית התקנה
- בחירת גרסת Nexus (OSS או Pro).
- פריסת הקונטיינר דרך Docker.
- הגדרת תעבורה: פורטים HTTP, TLS.
- יצירת מאגר proxy עבור מאגר החבילות היעד.
- יצירת מאגרי hosted ו-group.
- הגדרת משתמשים ותפקידים.
- החלת מדיניות ניקוי.
מה כלול בהתקנת מפתח-ביד
- התקנה ותצורה בסיסית (Docker, נפח, JVM).
- מאגרי proxy עבור Maven, npm, Docker, PyPI.
- מאגרי hosted עבור הארטיפקטים שלך.
- מאגר group לנקודת קצה אחת.
- Docker Registry (hosted, proxy, group) עם פורטים נפרדים.
- אינטגרציית LDAP לאימות ארגוני.
- יצירת תפקידים ומדיניות אבטחה.
- מדיניות ניקוי וניקוי אוטומטי.
- תיעוד והדרכת צוות (1–2 שעות).
אנו מבטיחים פעולה יציבה ותמיכה לאחר ההטמעה. הזמינו התקנת Nexus — קבלו ייעוץ מהנדס.
דוגמת `.m2/settings.xml` עבור Maven
<settings>
<mirrors>
<mirror>
<id>nexus-maven-public</id>
<mirrorOf>*</mirrorOf>
<url>http://nexus.company.com/repository/maven-public/</url>
</mirror>
</mirrors>
</settings> לוחות זמנים
| משימה | משך |
|---|---|
| התקנה + תצורה בסיסית | 4–8 שעות |
| הגדרת proxy ו-hosted עבור Maven/npm | 4–8 שעות |
| Docker registry עם Nginx | 4–8 שעות |
| אינטגרציית LDAP + תפקידים | חצי יום |
| מדיניות ניקוי + ניטור | חצי יום |
התקנת ייצור מלאה — 1–3 ימים. המחיר נקבע לאחר ביקורת תשתית.







