Weblines Cloudمستندات

ساخت اپ از Docker Image

دیپلوی اپ از یک Docker Image عمومی در Weblines Cloud — فیلدهای ویزارد، پورت، به‌روزرسانی و خطاهای رایج.

آخرین به‌روزرسانی:

دیپلوی از Docker Image سریع‌ترین راه است: image از registry دریافت می‌شود و container بدونِ build اجرا می‌گردد.

پیش‌نیاز#

  • یک image عمومی روی Docker Hub، GHCR یا registryِ عمومیِ دیگر. image خصوصی فعلاً پشتیبانی نمی‌شود — برای کدِ خصوصی از ساخت از Git استفاده کنید.
  • tag مشخص، مثلاً myorg/api:1.4.0 (در production از latest پرهیز کنید).
  • پورتی که اپ داخلِ container رویش گوش می‌دهد، و bind روی 0.0.0.0 (نه فقط localhost).

مراحل#

  1. SERVICES → + NEW SERVICE → Custom app.
  2. مرحله‌ی NAME & SIZE: نامِ اپ (هر نامی که دوست دارید) و پک.
  3. مرحله‌ی SOURCE: گزینه‌ی Docker Image و نامِ کاملِ image، مثلاً nginx:alpine. این فیلد نامِ imageی است که اجرا می‌شود، نه نامِ اپ. پنل قبل از ساخت بررسی می‌کند که این image در registry وجود دارد؛ اگر پیدا نشود همان‌جا خطا می‌دهد.
  4. مرحله‌ی OPTIONS: پورت (پیش‌فرض 80). اگر دیتابیس دارید، همین‌جا می‌توانید آن را وصل کنید.
  5. مرحله‌ی REVIEW: CREATE & DEPLOY.

ویزارد وضعیت و لاگ را زنده نشان می‌دهد؛ پنجره را ببندید هم دیپلوی ادامه دارد. وقتی RUNNING شد، اپ روی زیردامنه‌ی weblines.ir خودش باز می‌شود.

فیلدنمونهنکته
Docker Imageghcr.io/myorg/api:1.4.0کامل، با registry اگر Docker Hub نیست
Nameapiدر پنل و زیردامنه دیده می‌شود
Port3000باید با پورتِ واقعیِ اپ یکی باشد

متغیرهای محیطی#

متغیرهای محیطی را در تبِ Environment تنظیم کنید (متغیرها و گروه‌ها). برای پیکربندی‌های غیرمحرمانه دو راه دارید:

  • اتصالِ دیتابیس، DATABASE_URL و DB_* را خودکار تزریق می‌کند. اتصال به دیتابیس
  • پیکربندی‌های دیگر را در خودِ image بگذارید (بدونِ secret)، یا برای نیازِ خاص تیکت بزنید.

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

image اپ بعد از ساخت در پنل عوض نمی‌شود. برای انتشارِ نسخه‌ی جدید، یک tagِ ثابت مثلِ stable بسازید، هر بار همان را در registry به‌روز کنید و روی کارتِ اپ DEPLOY را بزنید تا container با image جدید بالا بیاید. برای جابه‌جاییِ کامل به imageی دیگر، اپِ جدید بسازید.

خطاهای رایج#

نشانهعلتِ محتمل
RUNNING نمی‌شود و بارها ری‌استارت می‌شودپورت اشتباه، یا bind روی localhost
image دریافت نمی‌شودimage خصوصی است، tag وجود ندارد، یا به‌جای image نامِ اپ نوشته شده
exec format errorimage برای arm64 ساخته شده؛ amd64 لازم است

جزئیات بیشتر: خطای دیپلوی. قبل از دیپلوی، image را محلی امتحان کنید:

bash
docker run --rm -p 3000:3000 myorg/api:1.4.0

جوابت را پیدا نکردی؟

تیکت از پنل یا تماس در ساعاتِ کاری: ۰۲۱-۸۸۷۱۷۴۵۱

ثبتِ تیکت