برای چه کسانی است؟
تیمهایی که پیشتر stack خود را در یک فایل docker-compose توصیف کردهاند و میخواهند بدون بازسازی سرویسبهسرویس، آن را پشت edge اجرا کنند.
چطور کار میکند؟
سرویسهای دارای image از پیشساخته به container appها تبدیل میشوند؛ سرویسهای Redis، MySQL/MariaDB، Postgres و NATS به افزونههای مدیریتشده تبدیل و به اپهایی که به آنها وابستهاند متصل میشوند. portها، environment، volumeها، replicaها، healthcheckها و ترتیب depends_on بهطور خودکار نگاشت میشوند.
پیشنمایش پیش از اعمال
پیشنمایش، فایل را سمت سرور تجزیه میکند و طرح را برمیگرداند: اپهایی که ساخته میشوند، نگاشت افزونهها، کلیدهای environment در برابر secret، هشدارها، سرویسهای پشتیبانینشده و اینکه آیا با سهمیه شما سازگار است. تا زمانی که اعمال نکنید چیزی ساخته نمیشود و مقادیر secret هرگز بازتاب داده نمیشوند — فقط نام کلیدها.
امن بهصورت پیشفرض
اعمال در یک تراکنش واحد همهیاهیچ است: اگر نام یک اپ از قبل وجود داشته باشد یا گامی شکست بخورد، چیزی ساخته نمیشود. کلیدهای شبیه به secret مانند رمزهای عبور، tokenها و API keyها بهجای مقادیر environment ساده، بهصورت secret ذخیره میشوند.
استقرار گامبهگام
فایل compose خود را آماده کنید
مطمئن شوید هر سرویس از یک image از پیشساخته استفاده میکند (برای مثال image: myorg/web:1.2). سرویسهایی که فقط یک گام build: دارند هنوز پشتیبانی نمیشوند، پس ابتدا آنها را به یک registry push کنید. سرویسهای Redis، MySQL/MariaDB، Postgres و NATS به image نیاز ندارند — بهطور خودکار به افزونههای مدیریتشده تبدیل میشوند.
(imageهای خصوصی) یک اعتبارنامه registry اضافه کنید
اگر هر image خصوصی است، یکبار Container Apps ← registry credentials را باز کنید و نام کاربری و access token registry خود را اضافه کنید تا پلتفرم بتواند image را هنگام deploy دریافت کند. اگر همه imageهای شما عمومی هستند، این گام را رد کنید.
فایل را درونریزی کنید
در پنل، Container Apps ← «Import From Docker Compose» را باز کنید، سپس docker-compose.yml خود را آپلود یا جایگذاری کنید. در این مرحله چیزی ساخته نمیشود — درونریزی فقط فایل را میخواند.
طرح را پیشنمایش کنید
فایل روی سرور تجزیه میشود و پیش از هر اتفاقی طرح کامل را دریافت میکنید: چه container appهایی ساخته میشوند، کدام سرویسها به افزونههای مدیریتشده تبدیل میشوند، کدام کلیدها بهصورت environment و کدام بهصورت secret ذخیره میشوند، هرگونه هشدار یا سرویس پشتیبانینشده، و اینکه آیا با سهمیه شما سازگار است.
اعمال کنید
برای اعمال تأیید کنید. در یک تراکنش واحد همهیاهیچ، اپها و افزونهها ساخته و به هم متصل میشوند — portها، environment، volumeها، replicaها، healthcheckها و ترتیب depends_on برای شما نگاشت میشوند. اگر هر گامی شکست بخورد، چیزی ساخته نمیشود.
در دسترس قرار دهید و مدیریت کنید
سرویس web را expose کنید تا یک آدرس رایگان name.cdn.com.tr با HTTPS خودکار بگیرید، یا دامنه خودتان را متصل کنید. از آنجا لاگها، environment، مقیاسدهی و restartها را در پنل مدیریت کنید. ترمینال را ترجیح میدهید؟ «cdnctl container compose preview» و «… apply» همین کار را در دو دستور انجام میدهند.
سناریوهای نمونه
انتقال یک پروژه compose چندسرویسی به اپها و افزونههای مدیریتشده.
برپایی یک محیط بازبینی یا دمو از همان فایل compose.
استفاده از یک فایل compose بهعنوان منبع حقیقت در همه پروژهها.
پرسشهای متداول
آیا imageها را از سورس میسازد؟
خیر. هر سرویس اپ به یک image از پیشساخته نیاز دارد. سرویسهایی که فقط یک گام build تعریف میکنند در پیشنمایش بهعنوان پشتیبانینشده فهرست میشوند، بنابراین میتوانید ابتدا یک image را push کنید.
برای سرویس پایگاهداده یا Redis من چه اتفاقی میافتد؟
سرویسهای Redis، MySQL/MariaDB، Postgres و NATS بهجای اجرا بهصورت کانتینر خام، به افزونههای مدیریتشده تبدیل و به اپهایی که به آنها وابستهاند متصل میشوند.
آیا محدودیتی وجود دارد؟
یک درونریزی واحد تا 20 سرویس را مدیریت میکند. ابتدا پیشنمایش را اجرا کنید تا طرح کامل و سازگاری آن با سهمیه حساب خود را ببینید.