הגדרת Nexus עבור שמירת Artifacts במטמון ורישום Docker

מאגרים חיצוניים מאטים בניות, ו-Docker Hub מגביל בקשות—זה פוגע בפיתוח ומעלה עלויות. אנו מגדירים את Nexus Repository Manager כדי לשמור artifacts במטמון ומקימים Docker Registry פרטי, מה שמאיץ CI/CD. הצוות שלנו מספק את הפרויקט במפתח מלא—מביקורת ועד תמיכה—ומבטיח פעילות יציבה וסקאלביליות עם העסק שלך.

היכולות שלנו:

שאלות נפוצות

העבודות האחרונות

  • פיתוח אפליקציית ווב עבור FEEDME
    פיתוח אפליקציית ווב עבור FEEDME
    1365
  • פיתוח חנות מקוונת לחברת FURNORO
    פיתוח חנות מקוונת לחברת FURNORO
    1330
  • עיצוב לוגו לחברת B2B Advance
    עיצוב לוגו לחברת B2B Advance
    776
  • פיתוח אפליקציית ווב עבור Enviok
    פיתוח אפליקציית ווב עבור Enviok
    1077
  • פיתוח לוגו חברת AIDER
    פיתוח לוגו חברת AIDER
    1022
  • פיתוח CRM עבור Chasseurs
    פיתוח CRM עבור Chasseurs
    1113

צינור ה-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 — אחרת, שטח הדיסק לא מתפנה; הנתונים רק מסומנים כמחוקים.

תוכנית התקנה

  1. בחירת גרסת Nexus (OSS או Pro).
  2. פריסת הקונטיינר דרך Docker.
  3. הגדרת תעבורה: פורטים HTTP, TLS.
  4. יצירת מאגר proxy עבור מאגר החבילות היעד.
  5. יצירת מאגרי hosted ו-group.
  6. הגדרת משתמשים ותפקידים.
  7. החלת מדיניות ניקוי.

מה כלול בהתקנת מפתח-ביד

  • התקנה ותצורה בסיסית (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 ימים. המחיר נקבע לאחר ביקורת תשתית.