Image Registry (IR)¶
IR הוא registry פרטי של OCI / Docker לחשבון שלכם. דחפו לכאן images ל-Applications ול-Kubernetes במקום להשתמש ב-registry ציבורי לקוד פרטי.
| פריט | ערך |
|---|---|
| Console | Registry → /console/registry |
| Registry host | ir.{apex} |
| Image reference | ir.{apex}/{account_number}/{repository}:{tag} |
| Auth | homecloud ir login (פרופיל Access Key) עם ir:Push / ir:Pull |
account_number הוא מזהה החשבון הציבורי בן 12 ספרות (כמו בלוגין / ARN של IAM). נתיבים ישנים עם short id נשארים קריאים בחלון המעבר; repositories חדשים וכל הדוגמאות משתמשים במספר החשבון.
GHCR של הפלטפורמה (אם קיים) מיועד ל-CI של HomeCloud עצמה — לא לתמונות ה-tenant שלכם.
הליכה בקונסול¶
יצירת repository¶
- פתחו Registry → Create repository.
- בחרו שם.
- אופציונלית הגדירו lifecycle: שמירת N tags אחרונים, ועוד tags מוגנים שאסור למחוק לעולם.
- פתחו את ה-repo כדי לראות tags/digests ושימוש.
שימוש ומכסות¶
פתחו Usage (קונסול או CLI) כדי לראות כמה אחסון נצרך. השביתו או נקו tags ישנים כשמתקרבים למכסה. Digests (@sha256:…) בלתי משתנים — העדיפו digests בפריסות פרודקשן.
זרימת Docker / Podman¶
התחברות¶
homecloud configure # פעם אחת: מזהה Access Key + secret
homecloud ir login # מריץ docker login מהפרופיל (בלי הזנה ידנית)
חלופה בסגנון AWS:
homecloud ir get-login-password | docker login --username <AccessKeyId> --password-stdin ir.holab.abrdns.com
המפתח צריך ir:Push ו/או ir:Pull.
Tag ו-push¶
בקונסול, פתחו את ה-repository והשתמשו ב-פקודות push עם host/חשבון/ריפו כבר ממולאים. או:
docker build -t myapp:1.0 .
docker tag myapp:1.0 ir.holab.abrdns.com/996476522433/myapp:1.0
docker push ir.holab.abrdns.com/996476522433/myapp:1.0
החליפו 996476522433 ב-מספר החשבון שלכם (תפריט משתמש / פקודות push ב-Registry).
Pull¶
docker pull ir.holab.abrdns.com/996476522433/myapp:1.0
# production:
docker pull ir.holab.abrdns.com/996476522433/myapp@sha256:...
CLI¶
homecloud ir login
homecloud ir repo list
homecloud ir repo create myapp --keep-last 10
homecloud ir usage
ראו CLI ir.
SDK¶
from homecloud import HomeCloud
client = HomeCloud.from_env()
print(client.ir.list())
client.ir.create("myapp", keep_last=10)
print(client.ir.usage())