استقرار Docker image

یک Docker image آماده را بدون build منبع روی App ابران مستقر کنید.

آخرین بازبینی:


Dockerتشخیص با Dockerfile / image

اگر image برنامه را از قبل در یک registry ساخته‌اید، ابران می‌تواند همان artifact را بدون build کردن source روی App مستقر کند.

پیش‌نیازها

  • ورود به CLI و انتخاب پروژه
  • یک App موجود با پورت runtime درست
  • آدرس کامل image شامل tag یا digest
  • دسترسی ابران به registry؛ نمونه این صفحه از image عمومی استفاده می‌کند

۱. پورت image را مشخص کنید

برنامه داخل container باید روی 0.0.0.0 گوش دهد. پورت App نیز باید با پورت واقعی process یکسان باشد.

اگر App را تازه می‌سازید:

abrun app create container-api --plan <plan> --port 8080

۲. image را مستقر کنید

به‌جای tag متغیر latest، نسخه یا digest مشخصی انتخاب کنید تا rollback و عیب‌یابی قابل‌تکرار باشد:

abrun deploy container-api --image ghcr.io/acme/api:1.4.0 --port 8080

در image deployment مرحله ارسال source و build محلی وجود ندارد. ابران image را دریافت می‌کند، release را اعمال می‌کند و health برنامه را بررسی می‌کند.

۳. نتیجه را بررسی کنید

استقرار موفق با Ready و URL نسخه فعال تمام می‌شود:

abrun app inspect container-api abrun app logs container-api --tail 100

یک endpoint واقعی برنامه را نیز فراخوانی کنید؛ فعال‌بودن process به‌تنهایی موفقیت مسیرهای اصلی محصول را ثابت نمی‌کند.

به‌روزرسانی image

برای انتشار نسخه بعدی، deploy جدیدی با tag یا digest جدید بسازید:

abrun deploy container-api --image ghcr.io/acme/api:1.4.1 --message 'Release 1.4.1'

هر deploy history مستقل دارد. اگر نسخه جدید مشکل داشت، طبق راهنمای rollback به deployment سالم برگردید.

image خصوصی

پیش از deploy، Registry resource همان provider را از API عمومی ابران ثبت و اعتبارسنجی کنید. مدیریت کامل registry در CLI و کنسول در این راهنما پوشش داده نمی‌شود. credential را داخل image URL، command، repository یا log قرار ندهید. اگر pull با خطای authorization شکست خورد، دسترسی repository و تطابق hostname credential با hostname image را بررسی کنید.

رفع مشکل

  • image pull یا authorization: نام registry، repository، tag و credential را بررسی کنید.
  • Checking health ناموفق: پورت App و پورت process داخل image باید برابر باشند.
  • container بلافاصله خارج می‌شود: command پیش‌فرض image و لاگ runtime را بررسی کنید.
  • معماری ناسازگار: image باید برای معماری runtime ابران ساخته شده باشد.

قدم بعدی

این صفحه مفید بود؟

بازخورد شما به بهترشدن مستندات کمک می‌کند.