پرش به مطلب اصلی

رجیستری کانتینر (Container Registry)

🖼️
صفحه مدیریت رجیستری‌ها در داشبوردplaceholder — تصویر را اینجا جایگزین کنید

رجیستری ابرکلیک به شما امکان می‌دهد image‌های Docker خود را ذخیره کنید و مستقیماً در deploy استفاده کنید.


کاربرد اصلی

۱. image خود را build کنید (محلی یا در CI/CD).
۲. به رجیستری ابرکلیک push کنید.
۳. با دستور abrclick deploy --image <registry-host>/<repo>:<tag> deploy کنید.

نکته

رجیستری برای سناریوهایی که Dockerfile سفارشی دارید یا می‌خواهید فرآیند build را در CI/CD خودتان کنترل کنید، مناسب است.


پیش‌نیازها

  • یک پروژه در ابرکلیک
  • Docker نصب‌شده (docker یا podman)
  • CLI ابرکلیک نصب‌شده: npm install -g @abrclick/cli

ایجاد رجیستری از طریق داشبورد

۱. به بخش رجیستری (Registry) در پروژه خود بروید.
۲. روی رجیستری جدید کلیک کنید.
۳. نام (name) و اندازه (sizeGb) را انتخاب کنید.

  • اندازه: ۱–۱۰۰ گیگابایت (۱ گیگابایت رایگان).
    ۴. اگر می‌خواهید pull بدون احراز هویت مجاز باشد، گزینه public را فعال کنید.
    ۵. روی ایجاد بزنید.

پس از ایجاد، یک robot account (حساب ماشینی) برای شما ایجاد می‌شود و می‌توانید credentials را مشاهده کنید.


ایجاد رجیستری از طریق CLI

abrclick registry create my-registry --size 5

پارامترها:

  • <name> — نام رجیستری (الزامی)
  • --size <gb> — اندازه به گیگابایت (پیش‌فرض: ۱)
  • --public — فعال‌سازی pull بدون احراز هویت

خروجی:

✓ رجیستری my-registry ایجاد شد
ID: reg-abc123
Host: cr.abrclick.cloud
Project: my-registry

ایجاد رجیستری از طریق API

Endpoint: POST /v1/projects/:projectId/registries

Body:

{
"name": "my-registry",
"sizeGb": 10,
"public": false
}

Response:

{
"data": {
"id": "reg-abc123",
"name": "my-registry",
"projectId": "proj-xyz",
"host": "cr.abrclick.cloud",
"project": "my-registry",
"sizeGb": 10,
"public": false,
"createdAt": "2026-07-20T10:00:00Z"
}
}

دریافت credentials

از طریق CLI

abrclick registry credentials reg-abc123

خروجی:

{
"username": "robot$my-registry-push",
"password": "eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9...",
"registry": "cr.abrclick.cloud"
}
هشدار

این اطلاعات را مانند رمز عبور محرمانه نگه دارید. هرگز در کد یا لاگ commit نکنید.

از طریق API

Endpoint: GET /v1/registries/:id/credentials


ورود به رجیستری (docker login)

روش ساده — از طریق CLI ابرکلیک

abrclick registry login reg-abc123

این دستور به‌طور خودکار docker login را با credentials رجیستری اجرا می‌کند.

روش دستی

docker login cr.abrclick.cloud \
-u robot$my-registry-push \
-p <password>

فرآیند کامل: build، push، deploy

۱. ساخت image محلی

docker build -t cr.abrclick.cloud/my-registry/my-app:v1.0.0 .

۲. ورود به رجیستری

abrclick registry login reg-abc123

۳. push به رجیستری

docker push cr.abrclick.cloud/my-registry/my-app:v1.0.0

۴. deploy در ابرکلیک

abrclick deploy --image cr.abrclick.cloud/my-registry/my-app:v1.0.0

پس از deploy، اپ شما روی آدرس زیر در دسترس خواهد بود:

https://my-app.apps.abrclick.cloud

مدیریت credentials

چرخش (rotate) password رجیستری

abrclick registry rotate reg-abc123

پس از چرخش، password قبلی دیگر معتبر نیست. باید مجدداً docker login را اجرا کنید.


لیست repository‌ها در یک رجیستری

از طریق CLI

abrclick registry repos reg-abc123

از طریق API

Endpoint: GET /v1/registries/:id/repositories

Response:

{
"data": [
{
"name": "my-app",
"tagCount": 5,
"pullCount": 42,
"lastPush": "2026-07-20T12:30:00Z"
}
]
}

افزایش اندازه رجیستری

از طریق CLI

abrclick registry resize reg-abc123 --size 20
اطلاع

فقط افزایش اندازه مجاز است. نمی‌توانید اندازه را کاهش دهید.

از طریق API

Endpoint: PATCH /v1/registries/:id

Body:

{
"sizeGb": 20
}

تنظیم دسترسی عمومی (public)

فعال کردن pull بدون احراز هویت

abrclick registry public reg-abc123 --enable

غیرفعال کردن

abrclick registry public reg-abc123 --disable

مشاهده لیست رجیستری‌ها

از طریق CLI

abrclick registry list

از طریق API

Endpoint: GET /v1/registries


حذف رجیستری

از طریق CLI

abrclick registry rm reg-abc123
هشدار

حذف رجیستری تمام image‌ها و repository‌های داخل آن را پاک می‌کند. این عمل غیرقابل بازگشت است.

از طریق API

Endpoint: DELETE /v1/registries/:id


مثال واقعی — استفاده در GitHub Actions

name: Build and Deploy

on:
push:
branches: [main]

jobs:
deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3

- name: ورود به رجیستری ابرکلیک
run: |
echo "${{ secrets.ABRCLICK_REGISTRY_PASSWORD }}" | \
docker login cr.abrclick.cloud \
-u "${{ secrets.ABRCLICK_REGISTRY_USERNAME }}" \
--password-stdin

- name: Build image
run: |
docker build -t cr.abrclick.cloud/my-registry/my-app:${{ github.sha }} .

- name: Push image
run: |
docker push cr.abrclick.cloud/my-registry/my-app:${{ github.sha }}

- name: Deploy
run: |
npx @abrclick/cli deploy \
--image cr.abrclick.cloud/my-registry/my-app:${{ github.sha }} \
--token "${{ secrets.ABRCLICK_API_TOKEN }}"

رفع خطاهای رایج

خطا: unauthorized: authentication required

علت: docker login اجرا نشده یا credentials منقضی شده.
راه‌حل: مجدداً abrclick registry login <id> اجرا کنید.

خطا: denied: requested access to the resource is denied

علت: username یا password اشتباه است.
راه‌حل: credentials را با abrclick registry credentials <id> بررسی و مجدداً login کنید.

خطا: insufficient_scope

علت: robot account دسترسی push ندارد.
راه‌حل: credentials را rotate کنید: abrclick registry rotate <id>.

خطا: name unknown

علت: repository یا tag وجود ندارد.
راه‌حل: مطمئن شوید نام image با فرمت <registry-host>/<project>/<repo>:<tag> درست است.


قیمت‌گذاری

برای مشاهده هزینه رجیستری‌ها:

از طریق API

Endpoint: GET /v1/registry-pricing

Response:

{
"data": {
"freeGb": 1,
"ratePerGbToman": 14000,
"steps": [1, 5, 10, 20, 40, 60, 80, 100]
}
}
اطلاع

تا ۱ گیگابایت رایگان است. برای اندازه‌های بزرگ‌تر، کل حجم انتخاب‌شده با نرخ ۱۴٬۰۰۰ تومان به‌ازای هر گیگابایت در ماه محاسبه می‌شود (نه فقط مقدار مازاد). برای مثال یک رجیستری ۲۰ گیگابایتی ماهانه ۲۸۰٬۰۰۰ تومان است. اندازه‌های مجاز: ۱، ۵، ۱۰، ۲۰، ۴۰، ۶۰، ۸۰، ۱۰۰ گیگابایت.


API endpoints کامل

روشمسیرتوضیح
GET/v1/registry-pricingقیمت‌گذاری
GET/v1/registriesلیست تمام رجیستری‌ها
GET/v1/projects/:projectId/registriesلیست رجیستری‌های یک پروژه
POST/v1/projects/:projectId/registriesایجاد رجیستری
GET/v1/registries/:idجزئیات رجیستری
GET/v1/registries/:id/credentialsدریافت credentials
POST/v1/registries/:id/credentials/rotateچرخش password
GET/v1/registries/:id/repositoriesلیست repository‌ها

مطالب مرتبط