از طریق منوی جستجو مطلب مورد نظر خود در وبلاگ را به سرعت پیدا کنید
چگونه پروژه Django خود را dockerize کنید

سرفصلهای مطلب
اگر کار می کنید روی یک پروژه Django و شما می خواهید زندگی خود را آسان تر کنید – به خصوص وقتی صحبت از اجرای برنامه خود در محیط های مختلف می شود – Docker بهترین دوست جدید شماست.
Docker امکان بسته بندی برنامه Django خود را به همراه تمام وابستگی های آن ، به چیزی به نام “container. “
به این ترتیب ، همین کار را اجرا می کند روی رایانه شما ، رایانه هم تیمی شما ، یک سرور تست یا حتی در تولید.
هنگامی که من برای اولین بار استفاده از Docker را شروع کردم ، احساس کمی بیش از حد کرد. اما پس از تنظیم آن برای چند برنامه Django ، همه آنها کلیک کردند.
خبر خوب؟ من قصد دارم شما را از طریق آن قدم بزنم ، قدم به قدم ، به روشی که به راحتی قابل پیگیری باشد ، حتی اگر کاملاً جدید برای Docker باشید.
فهرست مطالب
-
آنچه شما نیاز دارید
-
چگونه پروژه Django خود را dockerize کنید
-
مرحله 1: یک پروژه Django را شروع کنید
-
مرحله 2: یک dockerfile ایجاد کنید
-
مرحله 3: یک مورد را اضافه کنید. txt
-
مرحله 4: ایجاد docker-compose.yml
-
مرحله 5: آن را اجرا کنید!
-
-
مسائل مشترک
-
پورت قبلاً استفاده می شود؟
-
پایگاه داده کار نمی کند؟
-
-
متداول
-
آیا برای توسعه به داکر نیاز دارم؟
-
آیا می توانم مهاجرت را در داخل Docker اجرا کنم؟
-
چگونه می توانم همه چیز را متوقف کنم؟
-
-
نکته اضافی: از .dockerignore استفاده کنید
-
آنچه شما ساخته اید
-
می خواهید عمیق تر بروید؟
-
خواندن بیشتر
آنچه شما نیاز دارید
قبل از شروع ، اطمینان حاصل کنید که چند مورد نصب شده اید:
-
پایتون 3 (هر نسخه ای که Django از آن پشتیبانی می کند)
-
دژنگو (البته)
-
Docker and Docker آهنگسازی
👉 Docker را نصب کنید
👉 آهنگسازی Docker را نصب کنید
شما نیازی به متخصص بودن در Docker ندارید. من توضیح خواهم داد که هر قسمت با هم با هم می سازیم.
چگونه پروژه Django خود را dockerize کنید
مرحله 1: یک پروژه Django را شروع کنید
اگر قبلاً یک پروژه Django دارید ، می توانید از این قسمت پرش کنید.
در غیر این صورت ، خود را باز کنید terminal و اجرا:
django-admin startproject myproject
cd myproject
این یک پروژه جدید Django به نام ایجاد می کند myproject
بشر ساختاری مانند این را مشاهده خواهید کرد:
myproject/
├── manage.py
└── myproject/
├── __init__.py
├── asgi.py
├── settings.py
├── urls.py
└── wsgi.py
بیایید بگوییم این برنامه شما است که می خواهید داخل Docker اجرا کنید.
مرحله 2: یک dockerfile ایجاد کنید
در root از پروژه شما (همان پوشه manage.py
) ، پرونده ای به نام ایجاد کنید Dockerfile
بشر بدون پسوند پرونده – فقط Dockerfile
بشر
این چیزی است که در داخل می رود:
# Use the official Python image
FROM python:3.10-slim
# Set environment variables
ENV PYTHONDONTWRITEBYTECODE=1
ENV PYTHONUNBUFFERED=1
# Set the working directory in the container
WORKDIR /app
# Install dependencies
COPY requirements.txt /app/
RUN pip install --upgrade pip && pip install -r requirements.txt
# Copy the rest of the code
COPY . /app/
بگذارید این را بشکنم:
-
FROM python:3.10-slim
: این به Docker می گوید که از نسخه سبک Python 3.10 استفاده کند. -
ENV
: اینها فقط به سیاهههای تمیز کننده و عملکرد بهتر کمک می کنند. -
WORKDIR /app
: این فهرست کار پیش فرض را در داخل تنظیم می کند containerبشر -
COPY
وتRUN
: این خطوط کد شما را در container و بسته های پایتون خود را نصب کنید.
مرحله 3: اضافه کردن requirements.txt
به یک فایل نیاز دارید که بسته های Python خود را لیست کنید.
فایلی به نام ایجاد کنید requirements.txt
در root پوشه و اضافه کردن:
Django>=4.0,<5.0
در صورت رشد پروژه می توانید بعداً بیشتر اضافه کنید. در حال حاضر ، همین کافی است.
برای تولید لیست کاملی از وابستگی ها از محیط مجازی محلی خود ، اجرا کنید:
pip freeze > requirements.txt
مرحله 4: ایجاد docker-compose.yml
حال بیایید پرونده ای را ایجاد کنیم که به Docker می گوید چگونه همه چیز را با هم اجرا کنیم.
در شما root پوشه ، ایجاد docker-compose.yml
:
version: '3.9'
services:
web:
build: .
command: python manage.py runserver 0.0.0.0:8000
volumes:
- .:/app
ports:
- "8000:8000"
بیایید به خط خط برویم:
-
build: .
: این به Docker می گوید استفاده ازDockerfile
در پوشه فعلی -
command
: این سرور توسعه Django را در داخل اجرا می کند containerبشر -
volumes
: این کد شما را در container بنابراین تغییرات به صورت زنده منعکس می شوند. -
ports
: این نقشه بندر 8000 را در داخل Docker به بندر 8000 روی دستگاه شما
بنابراین اگر به http://localhost:8000
، برنامه خود را خواهید دید.
مرحله 5: آن را اجرا کنید!
اکنون قسمت سرگرم کننده است. از شما terminal، اجرا:
docker-compose up --build
این به داکر می گوید:
-
ساخت container
-
وابستگی ها را نصب کنید
-
سرور Django را اجرا کنید
اگر همه چیز خوب پیش برود ، سیاهههای مربوط به سرور Django را مشاهده خواهید کرد ، و می توانید مرورگر خود را باز کرده و به آن بروید http://localhost:8000
بشر
شما باید صفحه خوش آمدید Django را ببینید.
مسائل مشترک
پورت قبلاً استفاده می شود؟
اگر پورت 8000 شلوغ است ، این خط را تغییر دهید docker-compose.yml
:
ports:
- "8001:8000"
سپس برو به http://localhost:8001
بشر
پایگاه داده کار نمی کند؟
اگر به یک پایگاه داده نیاز دارید (مانند PostgreSQL) ، می توانید یک سرویس دیگر به آن اضافه کنید docker-compose.yml
بشر در اینجا مثالی با PostgreSQL آورده شده است:
services:
db:
image: postgres
environment:
POSTGRES_DB: mydb
POSTGRES_USER: user
POSTGRES_PASSWORD: password
web:
build: .
command: python manage.py runserver 0.0.0.0:8000
volumes:
- .:/app
ports:
- "8000:8000"
depends_on:
- db
سپس ، خود را به روز کنید settings.py
در Django برای استفاده از آن بانک اطلاعاتی.
متداول
آیا برای توسعه به داکر نیاز دارم؟
نه ، اما این به تمیز و سازگاری محیط شما کمک می کند. اگر در Docker کار کند ، در هر جایی کار خواهد کرد.
آیا می توانم مهاجرت را در داخل Docker اجرا کنم؟
بله فقط اجرا کنید:
docker-compose run web python manage.py migrate
چگونه می توانم همه چیز را متوقف کنم؟
مطبوعات Ctrl+C
برای متوقف کردن سرور در حال اجرا ، و اگر می خواهید ظروف را حذف کنید:
docker-compose down
نکته اضافی: استفاده کنید .dockerignore
درست مثل .gitignore
، شما می توانید ایجاد کنید .dockerignore
پرونده برای جلوگیری از کپی کردن پرونده های غیر ضروری در docker containerبشر در اینجا یک مورد ساده وجود دارد:
__pycache__
*.pyc
*.pyo
*.pyd
.env
.git
آنچه شما ساخته اید
در حال حاضر ، شما:
-
یک پروژه Django ایجاد کرد
-
یک داکر ساخت container برای آن
-
تنظیم کردن
docker-compose
برای اجرای همه چیز -
یاد گرفت که چگونه همه آن را به راحتی مدیریت کنید
پس از راحت بودن ، می توانید این مجموعه را با پرونده های استاتیک ، NGINX ، Gunicorn یا حتی Docker Docker آماده تولید گسترش دهید.
می خواهید عمیق تر بروید؟
اگر این احساس زیادی داشته باشد ، اشکالی ندارد. کمی تمرین می کند ، اما پس از چند بار این کار را انجام دادید ، داکر طبیعت دوم می شود.
شما زمان کمتری را برای اشکال زدایی در مورد تنظیمات تنظیمات و زمان بیشتری برای برنامه نویسی برنامه خود صرف خواهید کرد.
خواندن بیشتر
-
اسکله Documentation
-
اسناد رسمی جنگو
-
مرجع پرونده را تهیه کنید
منتشر شده در 1404-04-18 23:34:14