رجیستری کانتینر (Container Registry)
رجیستری ابرکلیک به شما امکان میدهد 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ها |
مطالب مرتبط
- استقرار با Docker — deploy از image و Dockerfile