بیلدها و لاگها
در بخش «بیلدهای اخیر» میتوانید همهی بیلدهای پروژه را از جدید به قدیم مشاهده کنید، وضعیت هر بیلد را پیگیری کنید و لاگهای آن را بخوانید. در این راهنما شیوهی اجرای دستی بیلد و بررسی دلایل رایج ناموفق شدن بیلدها را نیز بررسی میکنیم.
فهرست بیلدها
برای مشاهدهی بیلدها، پس از ورود به پنل کاربری دادههات، از منوی سمت راست گزینهی «بیلد و دپلوی» را انتخاب کنید و به بخش «بیلدهای اخیر» بروید. اطلاعات زیر برای هر بیلد نمایش داده میشود:
- کامیت: شناسهی کامیتی که بیلد از آن ساخته شده است.
- وضعیت: وضعیت فعلی بیلد.
- مبدا اجرا: push خودکار یا اجرای دستی.
- مدت زمان: مدت اجرای بیلد به دقیقه.
- شروع: زمان شروع بیلد.
وضعیتهای بیلد
| وضعیت | توضیح |
|---|---|
| «در صف» | بیلد ثبت شده و منتظر شروع است. |
| «در حال اجرا» | کد دریافت شده و ایمیج در حال ساخت است. |
| «موفق» | ایمیج ساخته شده و در رجیستری قرار گرفته است. اگر کانتینری به قانون متصل باشد، دپلوی آن نیز آغاز میشود. |
| «ناموفق» | بیلد با خطا متوقف شده است. دلیل خطا در لاگ بیلد قابل مشاهده است. |
اگر پیش از پایان یک بیلد، push جدیدی برای همان قانون انجام شود، بیلد قبلی با پیام «با یک بیلد جدیدتر جایگزین شد.» کنار گذاشته میشود و فقط آخرین تغییرات بیلد خواهد شد.
اجرای دستی بیلد
برای شروع بیلد بدون push جدید، در بخش «دپلوی خودکار» روی دکمهی «اجرای بیلد» کنار قانون مورد نظر کلیک کنید. بیلد از آخرین کامیت شاخه یا تگ منطبق ساخته میشود. این کار پس از رفع یک خطای موقت، یا پس از تغییر تنظیمات قانون کاربرد دارد.
مشاهدهی لاگها
با کلیک روی هر ردیف در فهرست بیلدها، صفحهی جزییات بیلد و «لاگها» نمایش داده میشود. لاگ بیلدهای در حال اجرا بهشکل زنده بهروز میشود و مراحل دریافت کد، نصب وابستگیها، ساخت ایمیج و ارسال آن به رجیستری را نشان میدهد.
پس از بیلد موفق، با گزینهی «استقرار به عنوان کانتینر» میتوانید از ایمیج ساختهشده یک کانتینر جدید بسازید.
توجه داشته باشید که سوابق و لاگ بیلدهای ناموفق و جایگزینشده ۱۲ ساعت پس از پایان حذف میشوند. اگر به لاگ یک بیلد ناموفق نیاز دارید، آن را در این بازه بررسی کنید.
دلایل رایج ناموفق شدن بیلد
اگر بیلد شما ناموفق شد، ابتدا لاگ آن را بررسی کنید. دلایل رایج و راهحل آنها عبارتاند از:
نبود دسترسی به اینترنت
بیلدها برای دریافت کد و وابستگیها به اینترنت خروجی نیاز دارند. اگر لاگ بیلد خطای اتصال یا Timeout هنگام دریافت کد نشان میدهد، مطمئن شوید اینترنت گیتوی روی ابر خصوصی پروژه فعال است.
رسیدن به سقف روزانهی بیلد
هر پروژه روزانه حداکثر ۲٬۰۰۰ دقیقه زمان بیلد دارد. بیلدهایی که پس از رسیدن به این سقف اجرا شوند با خطای quota_exceeded ناموفق میشوند و هزینهای برای آنها محاسبه نمیشود. در این حالت تا روز بعد صبر کنید یا با فیلتر مسیر از بیلدهای غیرضروری جلوگیری کنید.
مسیر نادرست Dockerfile
اگر «نوع بیلد» روی Dockerfile تنظیم شده است، «مسیر Dockerfile» و «مسیر Context» را در قانون بیلد بررسی کنید. هر دو مسیر نسبت به ریشهی مخزن سنجیده میشوند و به حروف کوچک و بزرگ حساس هستند.
نبود رجیستری
نام واردشده در فیلد «رجیستری» باید با نام یکی از رجیستریهای همان پروژه یکسان باشد. اگر رجیستری حذف شده یا نام آن اشتباه وارد شده است، قانون را ویرایش کنید.
تشخیصندادن زبان در Buildpacks
اگر Buildpacks نتواند نوع پروژه را تشخیص دهد، فایلهای اصلی پروژه، مانند package.json، requirements.txt یا go.mod، باید در ریشهی مخزن یا مسیر Context قرار داشته باشند. در غیر این صورت از روش Dockerfile استفاده کنید.
قطع اتصال حساب
اگر اتصال حساب GitHub یا GitLab قطع شده یا توکن GitLab اختصاصی منقضی شده باشد، بیلدها اجرا نمیشوند. حساب را از بخش «حسابهای متصل» دوباره متصل کنید.