معرفی فندق

فندق سکویی است که سعی در حل کردن چالش های مختلفی دارد که در زمان استقرار محصول تیم های توسعه و نگهداری نرم افزار با آن برخورد میکنند. شما با استفاده از فندق به راحتی می توانید سرویسهای خود را بر روی سرورهای ابری فندق مستقر کنید و نگرانی در مورد مدیریت سرورها نداشته باشید؛ چرا که این مساله به صورت خودکار توسط فندق انجام می شود.

آنچه که در ادامه می خوانید، بخشی از امکانات اصلی فندق در قالب یک مثال شرح داده میشوند.

نحوه استقرار یک وب سایت ایستا بر روی فندق

وب سایتهای ایستا، به دلیل نداشتن نیاز به پایگاه داده ها مثال خوبی برای شروع استفاده از فندق هستند. این گونه وب سایتها می توانند به صورت یک سرویس مستقل (standalone) مستقر شوند.

کدهای نمونه این مثال در tbd در دسترس شما هستند.

نصب Fandogh-CLI

اولین قدم برای استفاده از فندق نصب CLI است. این CLI به شما کمک می کند تا بتوانید با استفاده از ترمینال، محیط ابری که به شما اختصاص داده شده است را مدیریت کنید. برای نصب CLI شما نیاز به داشتن پایتون و pip دارید.

برای نصب CLI دستور زیر را اجرا کنید:

 $ pip install fandogh-cli --upgrade

برای اینکه مطمئن شوید نصب به درستی انجام گرفته دستور زیر را اجرا کنید.

$ fandogh --version

برای دیدن مستندات دستورات Fandogh-CLI می توانید از قابلیت ‍--help استفاده کنید. این پارامتر مستندات تمام زیر دستورها و پارامترهای دستور را به شما نمایش می دهد. چند مثال:

$ fandogh --help
$ fandogh login --help
$ fandogh image --help

احراز هویت در فندق

شما برای اینکه قادر به استفاده از امکانات فندق باشید قبل از هر چیز نیاز به login کردن دارید. بدین منظور می توانید از دستور زیر استفاده کنید.

$ fandogh login --username YOUR_USERNAME --password YOUR_PASSWORD
Logged in successfully

تعریف تصویر

به منظور استقرار سرویس های شما بر روی فندق، این سرویسها باید به صورت تصویر داکر (Docker Image) تعریف شوند. اولین منظور تعریف نام تصویر است. برای مثال اگر نام تصویر شما hello- world است، میتوانید با استفاده از دستور زیر آن را در فندق تعریف کنید.

$ fandogh image init --name hello-world
Image created successfully

انتشار تصویر

پس از تعریف تصویر، شما میتوانید با استفاده از دستور image publish نسخه جدیدی از تصویر را منتشر کنید. این دستور فایل Dockerfile و تمام فایلهای مرتبط به آن که در دایرکتوری جاری هستند را به صورت یک فایل zip شده به فندق ارسال می کند تا تصویر در سمت سرور ایجاد شود.

توجه: شما با تعریف فایل .dockerignore میتوانید فایلها و دایرکتوریهای که نیازی به ارسال آنها برای ایجاد تصویر نیست را مستثنی کنید. با این کار معمولا حجم فایل zip شده کاهش چشم گیری پیدا میکند که منجر میشود ترافیک و زمان کمتری برای ارسال این فایل به فندق نیاز باشد.

$ fandogh image publish --version v1
Uploading the workspace  [####################################]  100%
"Version created successfully"
workspace is ready.

Image build logs .... 

توجه: به صورت پیش فرض پس از آپلود workspace بر روی فندق build log های تصویر به صورت real time به شما نمایش داده می شود، که می توانند به شما کمک کنند تا دلیل مشکلات احتمالی در Dockerfile خود را پیدا کنید. اگر نیاز به دیدن این log ها ندارید با استفاده از آپشن d- می توانید این امکان را غیر فعال کنید.

توجه: شما با استفاده از دستور ‍image logs می توانید خروجی build log های مرتبط با هر یک از نسخه های تصویر را مشاهده نمایید.

چند مثال:

$ fandogh image logs --version v1
$ fandogh image logs --image X --version V
$ fandogh image logs --help

استقرار وب سایت بر روی فندق

پس از اینکه تصویر شما با موفقیت توسط فندق ساخته شد، شما میتوانید با استفاده از دستور service deploy یک سرویس از روی تصویر خود بر روی فندق مستقر کنید.

شما می توانید پارامترهایی مانند متغیرهای محیط و یا پورتی که وب سرور شما بر روی آن در حال سرویس دهی است را تعریف نمایید.

چند مثال:

  • ایجاد یک سرویس از روی نسخه v1 تصویری با نام hello-world با نام hello-word
$ fandogh service deploy --image hello-world --version v1 --name hello-world
  • ایجاد یک سرویس از روی نسخه v1 تصویری با نام hello-world با نام hello-word با فرض اینکه وب سایت بر روی پورت 8080 در حال سرویس دهی است
$ fandogh service deploy --image hello-world --version v1 --name hello-world --port 8080
  • مشاهده دستور help
$ fandogh service deploy --help