Skip to main content

ساخت و دیپلوی اولین اپ در دارکوب

در پلتفرم ابری دارکوب می‌توانید با ساخت یک داکرفایل یا انتخاب یک ایمیج داکر، اپ خود را دیپلوی کنید. در این‌جا نحوه دیپلوی یک اپ نمونه Django را باهم پیش خواهیم برد.

لازم به ذکر است مراحل اولیه‌ی ساخت یک اپ جنگو در محیط Local نیز در این مستند آورده شده‌اند. در صورتی که در ساخت یک پروژه جنگو و داکرفایل مشکلی ندارید، می‌توانید به بخش ساخت اپ در دارکوب پرش کنید.

آماده سازی فایل settings.py

لازم است تغییراتی در فایل settings.py اعمال شود.

تنظیمات دیتابیس

برای استفاده از دیتابیس پستگرس مورد نظرمان لازم است فیلد DATABASES را به شکل زیر تغییر دهیم تا اطلاعات لازم جهت اتصال به دیتابیس را از متغیر‌های محیطی‌ای که در ادامه در دارکوب برای اپ خود تعریف خواهیم کرد دریافت کند.

DATABASES = {
"default": {
"ENGINE": "django.db.backends.postgresql_psycopg2",
"NAME": os.getenv("DB_NAME"),
"USER": os.getenv("DB_USER"),
"PASSWORD": os.getenv("DB_PASSWORD"),
"HOST": os.getenv("DB_HOST"),
"PORT": os.getenv("DB_PORT"),
}
}

نصب gunicorn

gunicorn پکیجی‌ است که کاری مشابه دستور runserver را برای ما انجام می‌دهد. اما runserver از چند جهت (امنیت، سرعت و ...) برای محیط عملیاتی مناسب نیست. در نتیجه ما از gunicorn که برای محیط عملیاتی مناسب تر‌است استفاده خواهیم کرد.

ابتدا با دستور زیر gunicorn را نصب می‌کنیم.

pip install gunicorn

حال می‌توانیم برای تست، با استفاده از دستور زیر پروژه خود را روی پورت ۸۰۰۰ بالا بیاوریم:

gunicorn --bind 0.0.0.0:8000 django_app.wsgi

همچنین لازم است تا پکیج psycopg2 را نصب کنیم:

pip install psycopg2

در ادامه مقادیر این متغیر‌های محیطی را در دارکوب تعریف خواهیم کرد.

آماده‌سازی فایل requirements.txt

در این مرحله با استفاده از دستور زیر پکیج‌هایی را که تا به حال نصب کرده‌ایم، در فایل requirements.txt وارد می‌کنیم:

pip freeze > requirements.txt

آماده‌سازی داکرفایل

در این مرحله لازم است یک داکرفایل ساده در پروژه خود اضافه کنیم تا دارکوب با استفاده از آن پروژه ما را بیلد و دیپلوی کند.

محتویات داکرفایل ما به صورت زیر خواهد بود:

FROM hub.hamdocker.ir/library/python:3.8
WORKDIR /django_app/
ADD ./requirements.txt ./
RUN pip install -r ./requirements.txt
ADD ./ ./
ENTRYPOINT ["/bin/sh", "-c" , "python manage.py migrate && gunicorn --bind 0.0.0.0:8000 django_app.wsgi"]

ساخت دیتابیس

از آنجایی که ‌‌می‌خواهیم از دیتابیس پستگرس برای اپ خود استفاده کنیم لازم است تا از طریق دارکوب این دیتابیس را بسازیم.

برای ساخت دیتابیس می‌توانید در بخش ساخت اپ روی گزینه PostgreSQL کلیک کنید تا به مراحل ساخت این دیتابیس هدایت شوید. و یا روی دگمه‌ی زیر کلیک کنید:

ساخت اپ در دارکوب

برای ساخت اپ، می‌توانید از گزینه ساخت اپ با ریپو گیت استفاده کنید.

انتخاب ریپو و برنچ

نخست نیاز است که اپ خود را در یک ریپو گیت پوش کرده و با اتصال حساب گیت‌هاب خود به دارکوب، از لیست موجود، ریپو و برنچ کدهای خود را انتخاب نمایید.

تنظیمات اپ

تنظیمات عمومی

در بخش تنظیمات عمومی اپ، می‌توانیم مقدار 8000 را به عنوان پورت اپ خود انتخاب کنیم.

آدرس دامنه

حال از طریق تب آدرس دامنه آدرسی که می‌خواهیم اپ‌مان روی آن بالا بیاید را وارد می‌کنیم. به طور مثال ما از آدرس my-django-app.darkube.app استفاده می‌کنیم.

اضافه کردن متغیر‌های محیطی

در این بخش لازم است تا متغیر‌های محیطی‌ای را که در قسمت‌های قبل تعریف کردیم، مقدار‌دهی کنیم. بخش مهم این مقادیر، تنظیمات دیتابیس است. این مقادیر را می‌توان از بخش اطلاعات عمومی اپ PostgreSQL مشاهده کرد.

انتخاب پلن و کلاستر

در آخرین صفحه از تنظیمات اپ، می‌توانید پلن RAM و CPU مورد نظر خود را انتخاب کنید. سپس Cluster و Namespaceای که قرار اپ شما در آن قرار بگیرد را انتخاب می‌کنید و در نهایت روی دگمه‌ی ذخیره تغییرات کلیک می‌کنید.

حال روی دکمه ذخیره تغییرات کلیک می‌کنیم و منتظر ساخته شدن اپ می‌شویم. بیلد شدن و در دسترس قرار گرفتن اپ ممکن است چند ثانیه تا چند دقیقه به طول بیانجامد .

پس از ساخت اپ به آدرس فوق مراجعه می‌کنیم و مشاهده می‌کنیم که اپ در آدرس مورد نظر در دسترس است.

حال با خیال راحت به توسعه اپ خود بپردازید :)