"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > डिबग मोड: Django Docker Pycharm

डिबग मोड: Django Docker Pycharm

2024-11-06 को प्रकाशित
ब्राउज़ करें:656

Debug Mode: Django Docker Pycharm

आप जो कोड लिख रहे हैं उसे ठीक से डीबग करने के लिए अपना स्थानीय सेटअप प्राप्त करने में किसी भी डेवलपर की तुलना में अधिक समय लगता है। और हमें यह नहीं भूलना चाहिए कि यह अधिकतर एक बार किया गया सेटअप है, इसलिए यदि हम इसे नहीं लिखेंगे, तो हमें याद नहीं रहेगा। यह पोस्ट उसी सटीक समस्या को हल करने के लिए यहाँ है! इसे एक लिखित अनुस्मारक के रूप में काम करने दें कि अपने स्थानीय विकास परिवेश को कैसे चालू और संचालित किया जाए।

पूर्वावश्यकताएँ:

  • पाइचार्म प्रोफेशनल (डॉकर समर्थन के लिए)
  • डॉकर और डॉकर कंपोज़
  • Django REST फ्रेमवर्क (DRF) एप्लीकेशन

यह पोस्ट डिबग मोड के लिए आवश्यक अपडेट के अलावा Django, Docker, या Docker कंपोज़र सेटअप के बारे में विवरण शामिल नहीं करेगी। यह माना जाता है कि आपको पहले से ही इस बात का कार्यसाधक ज्ञान है कि उस भाग को कैसे कार्यान्वित किया जाए।

चरण 1: डिबगिंग के लिए डॉकरफ़ाइल सेटअप

डेव मोड में चलने और PyCharm डिबगर से कनेक्शन की अनुमति देने के लिए अपनी Dockerfile सेट करें।

नीचे डॉकरफ़ाइल का एक उदाहरण है:

# Builder stage
FROM python:3.9-slim as builder

RUN chmod 1777 /tmp

# Install system dependencies
RUN apt-get update && apt-get install -y \
    libpq-dev \
    build-essential

WORKDIR /app

# Copy the requirements file into the container
COPY requirements.txt /app/
RUN pip install --no-cache-dir -r requirements.txt > pip_install.log

# Copy the current directory contents into the container
COPY . /app

# Collect static files
RUN python manage.py collectstatic --noinput

# Final stage
FROM python:3.9-slim

# Set environment variables
ENV PYTHONUNBUFFERED=1
ENV DJANGO_SETTINGS_MODULE=template.settings.development

# Set work directory
WORKDIR /app

# Copy files from the builder stage
COPY --from=builder /app /app

# Install pydevd-pycharm for remote debugging and gunicorn for serving
RUN pip install gunicorn pydevd-pycharm==241.17890.14 psycopg2-binary

# Expose necessary ports
EXPOSE 8000 5679  # Web app port and debug port

# Entry point for the container
ENTRYPOINT ["sh", "-c", "python manage.py runserver 0.0.0.0:8000"]

इस कोड के बारे में ध्यान रखने योग्य बातें

  • pydevd-pycharm==241.17890.14 में 241.17890.14 आपके पास मौजूद Pycharm के संस्करण के आधार पर भिन्न होगा
  • हम बाहरी पहुंच के लिए 8000 (वेब ​​​​सर्वर पोर्ट) और 5679 (डीबगर पोर्ट) दोनों को उजागर कर रहे हैं।

चरण 2: डॉकर कंपोज़ कॉन्फ़िगरेशन

आइए डेटाबेस और अन्य सेवाओं के साथ वेब सेवा (Django ऐप) को कॉन्फ़िगर करने के लिए हमारी docker-compose.yml फ़ाइल प्राप्त करें।

यहां एक नमूना docker-compose.yml है:

version: '3'

services:
  web:
    environment:
      - DJANGO_ENVIRONMENT=development
      - DB_HOST=host.docker.internal
    build:
      context: .
    command: >
      sh -c "python manage.py migrate &&
             python manage.py collectstatic --noinput &&
             python manage.py runserver 0.0.0.0:8000"
    volumes:
      - .:/app
    ports:
      - "8000:8000"   # Expose web port
      - "5679:5679"   # Expose debugger port
    extra_hosts:
      - "host.docker.internal:host-gateway"
  db:
    image: postgres:13
    environment:
      - POSTGRES_DB=${DB_NAME}
      - POSTGRES_USER=${DB_USER}
      - POSTGRES_PASSWORD=${DB_PASSWORD}

आइए कोड ब्रेकडाउन पर जाएं

  • हम वेब सर्वर के लिए पोर्ट 8000 और PyCharm डिबगर के लिए पोर्ट 5679 मैप कर रहे हैं।
  • एक्स्ट्रा_होस्ट सुनिश्चित करता है कि आपका डॉकर कंटेनर होस्ट.डॉकर.इंटरनल का उपयोग करके होस्ट मशीन के साथ संचार कर सकता है।

चरण 3: डिबगिंग के लिए PyCharm कॉन्फ़िगर करें

  1. पायथन डिबग सर्वर कॉन्फ़िगरेशन बनाएं:
  2. PyCharm में Run ➡️ कॉन्फ़िगरेशन संपादित करें पर नेविगेट करें।
  3. बटन पर क्लिक करें और पायथन डिबग सर्वर चुनें।
  4. होस्ट को 0.0.0.0 या अपने स्थानीय मशीन के आईपी पते पर सेट करें।
  5. पोर्ट को 5679 पर सेट करें (या जिसे आप अपने डॉकर सेटअप में प्रदर्शित करते हैं)।
  6. और सहेजें दबाएं!

  7. डीबगर सर्वर प्रारंभ करें:
    डिबग बटन (हरा बग आइकन) पर क्लिक करके PyCharm डिबगर प्रारंभ करें। यह हमारे द्वारा निर्धारित पोर्ट पर सुनना शुरू कर देगा।

चरण 4: Django में रिमोट डिबगिंग कोड जोड़ें

अपने Django प्रोजेक्ट में, आपको PyCharm डिबगर से कनेक्ट करने के लिए अपने मैनेज.py या wsgi.py में निम्नलिखित कोड जोड़ना होगा:

import pydevd_pycharm

# Connect to the PyCharm debug server
pydevd_pycharm.settrace('host.docker.internal', port=5679, stdoutToServer=True, stderrToServer=True, suspend=False)

यह स्निपेट आपके Django ऐप को आपके होस्ट मशीन पर चल रहे PyCharm डिबगर से वापस कनेक्ट करने के लिए कहता है। Host.docker.internal डॉकर में होस्ट मशीन का समाधान करता है, और port=5679 हमारे द्वारा पहले उजागर की गई मशीन से मेल खाता है।

चरण 5: डॉकर और डीबग चलाएँ

  1. डॉकर बनाएं और चलाएं: अपने कंटेनर शुरू करने के लिए निम्नलिखित कमांड चलाएँ:
docker-compose up --build

यह डॉकर छवि का निर्माण करेगा और विकास मोड में चलने वाले Django सहित सेवाएं शुरू करेगा।

2. ब्रेकप्वाइंट सेट करें:
PyCharm के भीतर अपने Django कोड में ब्रेकप्वाइंट सेट करें। ब्रेकप्वाइंट को काम करना चाहिए क्योंकि आपका कंटेनर पोर्ट 5679 पर चलने वाले PyCharm डिबग सर्वर से कनेक्ट होगा।

3. अपना कोड ट्रिगर करें:
अब, अपने Django REST Framework API में किसी भी HTTP अनुरोध को ट्रिगर करें। जब कोड ब्रेकप्वाइंट पर पहुंचता है, तो PyCharm निष्पादन रोक देगा, जिससे आप वर्तमान स्थिति का निरीक्षण कर सकेंगे और कोड के माध्यम से आगे बढ़ सकेंगे।

चरण 6: समस्या निवारण

यदि आपको डॉकर चलाते समय बाइंड: एड्रेस पहले से ही उपयोग में आने वाली त्रुटि का सामना करना पड़ता है, तो एक अन्य प्रक्रिया पहले से ही पोर्ट 5679 का उपयोग करती है। इस मामले में, आप यह कर सकते हैं:

  • पाइचार्म डिबगर को रोकें और डॉकर को पुनरारंभ करें।
  • विरोधों से बचने के लिए अपने docker-compose.yml और PyCharm कॉन्फ़िगरेशन में पोर्ट बदलें।

निष्कर्ष

यह वह सेटअप है जिसका उपयोग मैं अपने Django REST फ्रेमवर्क एप्लिकेशन को PyCharm के शक्तिशाली डिबगर का उपयोग करके डॉकर कंटेनर के अंदर विकास मोड में चलाने के लिए करता हूं। यह सेटअप मुझे स्थानीय स्तर पर कोड लाइन दर लाइन चरणबद्ध तरीके से अपना बैकएंड कोड डीबग करने में मदद करता है।

PyCharm के साथ संचार करने के लिए अपने डॉकर कंटेनर को सेट करके, आप अपने Django एप्लिकेशन को लिखना, परीक्षण करना और डीबग करना आसान बनाते हैं, जिससे कोड लिखना आसान हो जाता है!

अपना कोड तोड़ने का आनंद लें!

विज्ञप्ति वक्तव्य यह लेख यहां पुन: प्रस्तुत किया गया है: https://dev.to/techbychoiceorg/debug-mode-django-docker-pycharm-i8d?1 यदि कोई उल्लंघन है, तो कृपया इसे हटाने के लिए स्टडी_गोलंग@163.com से संपर्क करें।
नवीनतम ट्यूटोरियल अधिक>

चीनी भाषा का अध्ययन करें

अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

Copyright© 2022 湘ICP备2022001581号-3