دیپلوی بر روی دارکوب
دیپلوی بر روی دارکوب
تا به اینجای کار، ما یک پروژه بالا آوردیم و به پایگاهداده متصل کردیم. همچنین آن را به سرویسهای سلری و سنتری نیز متصل کردیم. حال قصد داریم این پروژه را بر روی دارکوب دیپلوی کنیم. همانطور که گفتیم ما این کار را با استفاده از همگیت انجام خواهیم داد. شما میتوانید مستندات مربوط به دیپلوی کردن اپ بر روی دارکوب را از طریق این لینک مطالعه کنید.
به طور کلی شما باید همگیت خود را با کنسول همروش خود sync کنید تا ادامهی کار را دارکوب برای شما انجام دهد.
اگر به صفحهی ساخت اپ بروید، متوجه خواهید شد که باید یک Dockerfile برای پروژه خود بسازید و آدرسش را بدهید تا دارکوب بتواند پروژه شما را دیپلوی کند. در اینجا ما نحوهی ساخت داکرفایل را برای شما توضیح خواهیم داد، هرچند برای اطلاعات بیشتر میتوانید این لینک را نیز مشاهده کنید.
در ابتدا ما یک داکرفایل برای خود پروژه خواهیم ساخت (برای سلری و سایر چیزها در ادامه خواهیم ساخت.)
FROM python:3.10
WORKDIR /app/
ADD ./Codes/djangoProject ./
RUN pip install -r ./requirements.txt
RUN pip install --upgrade pip
ENTRYPOINT ["/bin/sh", "-c" , "python manage.py collectstatic --noinput && python manage.py migrate && gunicorn --bind 0.0.0.0:8000 djangoProject.wsgi"]
در اینجا ما گفته این که با استفاده از پایتون requirementsهای پروژه را نصب کرده و پروژه را بر روی پورت 8000 اجرا نماید. حال اگر دستور build و run را بزنیم پروژه run شده و بالا خواهد آمد.
حال از آنجایی که ما یک داکرفایل برای سلری پروژهمان نیز نوشتهایم، باید یک اپ نیز برای سلریمان داشته باشیم.
همانطور که بالاتر گفته بودیم، سلری ما نیاز دارد تا با یک broker در ارتباط باشد که ما برای کارمان از redis استفاده کردیم. درواقع worker سلری نیاز دارد تا از یک redis بخواند. پس حال که قصد داریم پروژه را روی دارکوب deploy کنیم پس باید در ابتدا یک ردیس بالا بیاوریم تا worker را به آن متصل کنیم.
حال به نحوهی ساخت یک اپ Redis در دارکوب میپردازیم. ابتدا به منوی ساخت اپ رفته و Redis را انتخاب میکنیم.
سپس پلن موردنظر را انتخاب کرده و اپ را میسازیم.
درنهایت اپ ما ساخته خواهد شد.
حال که ردیسمان را ساختیم، باید کانفیگ سلری در پروژه djangoمان را تغییر دهیم و به جای اینکه به ردیس لوکال وصل شویم به ردیس سرور وصل شویم.
CELERY_BROKER_URL="redis-url"
حال که سلری را در کانفیگش به ردیس متصل کردیم، داکر فایل آن به شکل زیر خواهد بود:
FROM python:3.10
RUN groupadd -r celeryuser && useradd -r -g celeryuser celeryuser
WORKDIR /app/
ADD ./requirements.txt ./
RUN pip install -r ./requirements.txt
ADD ./ ./
RUN chown -R celeryuser:celeryuser /app
USER celeryuser
ENTRYPOINT ["/bin/sh", "-c" , "celery -A djangoProject worker -l INFO"]
یک worker از سلری با این داکر فایل میتوانیم بالا بیاوریم.
حال یک داکر فایل برای beat سلری نیز میسازیم:
FROM python:3.10
RUN groupadd -r celeryuser && useradd -r -g celeryuser celeryuser
WORKDIR /app/
ADD ./requirements.txt ./
RUN pip install -r ./requirements.txt
ADD ./ ./
RUN chown -R celeryuser:celeryuser /app
USER celeryuser
ENTRYPOINT ["/bin/sh", "-c" , "celery -A djangoProject beat -l INFO"]
حال شما میتوانید در ساخت اپ دارکوب، با استفاد از hamgit، اپهای خود را (یک اپ جنگو، یک worker سلری و یک beat سلری دیپلوی کنید.)
شما با پر کردن مقادیر خواسته شده، میتوانید اپ خود را دیپلوی کنید. سپس میتوانید نتیجه دیپلوی خود را نیز از پنل اپ مورد نظر خود مشاهده کنید.
بالا آوردن اپ روی دامنه
زمانی که شما اپ خود را بر روی دارکوب دیپلوی کردید، میتوانید آن را به یک دامنه نیز متصل کنید. این امکان هم برای زیردامنههای دارکوب با پسوند darkube.app وجود دارد و هم برای دامنههای شخصی خودتان.
زمانی که شما پروژهی خود را دیپلوی کردید میتوانید از داشبورد اپ خود به قسمت "آدرس دامنه" رفته و در آنجا دامنهای که میخواهید برای خود ست کنید.
در این عکس یک نمونه از زیر دامنههای خود دارکوب را مشاهده میکنید. در همان داشبور به قسمت "پورت" رفته و مطمئن شوید که پورتها به درستی وارد شدهاند. (بر اساس همان پورتهایی که داکر خود را بیلد کردهاید.)
به عنوان مثال در پروژهی ما پورت ۸۰۰۰ بود.
اگر نیز میخواهید از دامنهی خود استفاده کنید، میتوانید از همان صفحهی آدرس دامنه، در قسمت دامنهی شخصی از دامنهی خود استفاده کنید.
برای ستآپ کردن دامنهی شخصی، ابتدا به منوی اپ جنگو (اپی که برنامه را Deploy کردیم) رفته و از قسمت آدرس دامنه، دامنهی شخصیمان را تنظیم میکنیم.
استفاده از ابرآروان برای تنظیمات دامنه
برای تنظیم دامنه، باید cname متناسب با همروش که در کنسول در قسمت تنظیم دامنه آمده است را در دامنه خود قرار دهیم. ابتدا به سایت ابرآروان رفته و اکانت بسازید و سپس دامنهی خود را اضافه کنید.
سپس در بخش CDN میتوانید یک رکورد DNS به دامنهی خود اضافه کنید.
در قسمت subdomain میتوانید نام انتخابی خود برای زیردامنهتان را مشخص کنید. به عنوان مثال ما از نام test استفاده کردهایم.
سپس نوع رکورد را مطابق عکس باید به CNAME تغییر دهید. بعد از آن مقدار را باید همان مقدار cnameای که در کنسول خود میبینید قرار دهید. پس از اینکه همهی موارد را ست کردید تنظیمات خود را ذخیره کنید. حال زیردامنهی شما برای استفاده از اپ شما آماده است.
زمانی که کارهای متناسب با دامنهی شخصی در ابر آروان/کلودفلر را انجام دادید، میتوانید به دامنهی شخصی خود متصل شوید.
دامنهی دارکوب:
دامنهی شخصی: