Go Academy · पाठ

स्थानीय विकास के लिए Docker Compose

Go सेवा को PostgreSQL और Redis से जोड़ना

पाठ 3, कुल 4 में से13 चरण

स्थानीय विकास के लिए Docker Compose, CoddyKit पर Go Academy का एक निःशुल्क पाठ है। यह 4 में से 3वाँ पाठ है। इस अध्ययन पथ के 3 तक कोई भी पाठ पूरा पढ़ना निःशुल्क है — इसके बाद CoddyKit PRO हर पाठ अनलॉक करता है, साथ ही अंतर्निर्मित कोड संपादक और चौबीसों घंटे एआई शिक्षक के साथ व्यावहारिक अभ्यास भी उपलब्ध कराता है। यह Go Academy सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। Go Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

Docker Compose क्यों?

Docker Compose स्थानीय विकास के लिए कई कंटेनरों (ऐप, डेटाबेस, कैश, संदेश ब्रोकर) का समन्वय करता है और मैन्युअल सेवा सेटअप के बिना उत्पादन-जैसा वातावरण पुनः बनाता है।

docker-compose.yml की संरचना

YAML फ़ाइल में सेवाएँ, नेटवर्क और वॉल्यूम परिभाषित करें:

services:
  app:
    build: .
    ports: ["8080:8080"]
    environment:
      - DATABASE_URL=postgres://app:pass@db/mydb
    depends_on: [db]
  db:
    image: postgres:15
    environment:
      POSTGRES_USER: app
      POSTGRES_PASSWORD: pass
      POSTGRES_DB: mydb
    volumes:
      - pgdata:/var/lib/postgresql/data
volumes:
  pgdata:

Air के साथ तुरंत पुनः लोड करना

विकास के दौरान तुरंत पुनः लोड करने के लिए github.com/air-verse/air का उपयोग करें। स्रोत को कंटेनर में माउंट करें और बाइनरी के बजाय air चलाएँ:

app:
  volumes:
    - .:/app
  command: air

स्वास्थ्य जाँच

स्वास्थ्य जाँच परिभाषित करें ताकि depends_on केवल शुरू होने की प्रतीक्षा न करे, बल्कि DB के वास्तव में तैयार होने की प्रतीक्षा करे:

db:
  healthcheck:
    test: ["CMD-SHELL", "pg_isready -U app"]
    interval: 5s
    timeout: 3s
    retries: 5
app:
  depends_on:
    db:
      condition: service_healthy

पर्यावरण के लिए ओवरराइड

स्थानीय-विशिष्ट सेटिंग के लिए docker-compose.override.yml का उपयोग करें (यह अपने-आप मर्ज हो जाता है) और आधार फ़ाइल को CI के लिए साफ़ रखें:

# docker-compose.override.yml
services:
  app:
    volumes: [".:/app"]  # source mount for live reload

नामित नेटवर्क

सेवा के नाम से DNS-आधारित सेवा खोज के लिए सेवाओं को साझा कस्टम नेटवर्क पर रखें:

networks:
  backend:
    driver: bridge
services:
  app:
    networks: [backend]
  db:
    networks: [backend]

पर्यावरण फ़ाइलें

कंटेनर में .env फ़ाइलें लोड करने के लिए env_file कुंजी का उपयोग करें और गोपनीय जानकारी को YAML से बाहर रखें:

app:
  env_file: .env.local

कमांड चलाना

सामान्य Compose कमांड:

docker compose up -d      # start in background
docker compose down -v    # stop and remove volumes
docker compose logs -f app # stream app logs
docker compose exec db psql -U app mydb # run in container

डेटाबेस में प्रारंभिक डेटा भरना

SQL की प्रारंभिक डेटा फ़ाइलों को postgres इमेज की /docker-entrypoint-initdb.d निर्देशिका में माउंट करें — कंटेनर पहली बार बनाए जाने पर वे चलती हैं:

db:
  volumes:
    - ./migrations:/docker-entrypoint-initdb.d

प्रोफ़ाइल

वैकल्पिक सेवाओं (जैसे निगरानी स्टैक) को केवल आवश्यकता होने पर शुरू करने के लिए Compose प्रोफ़ाइल का उपयोग करें:

services:
  grafana:
    profiles: ["monitoring"]

CI में Compose

CI में Compose के साथ वास्तविक सेवाओं पर एकीकरण परीक्षण चलाएँ। GitHub Actions मूल रूप से Docker Compose का समर्थन करता है; सेवाओं के तैयार होने की प्रतीक्षा करने के लिए स्वास्थ्य जाँच का उपयोग करें।

त्वरित जाँच

Docker Compose में ऐप कंटेनर को डेटाबेस के तैयार होने तक प्रतीक्षा कैसे कराएँगे?

पुनरावलोकन: Docker Compose

मुख्य बिंदु:

  • docker-compose.yml सभी सेवाओं, नेटवर्क और वॉल्यूम को परिभाषित करता है
  • सेवा की तत्परता के लिए depends_on + healthcheck
  • स्थानीय विकास सेटिंग के लिए ओवरराइड फ़ाइलें; गोपनीय जानकारी के लिए env_file
  • तुरंत पुनः लोड करने के लिए Air; स्रोत को वॉल्यूम के रूप में माउंट करें
शुरुआत निःशुल्क

एआई शिक्षक के साथ Go सीखें — निःशुल्क

अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।

पाठ्यक्रम
51
पाठ
203

अक्सर पूछे जाने वाले प्रश्न

क्या “स्थानीय विकास के लिए Docker Compose” पाठ निःशुल्क है?

हाँ — Go Academy अध्ययन पथ के 3 तक कोई भी पाठ, जिसमें “स्थानीय विकास के लिए Docker Compose” भी शामिल है, यहाँ वेब पर पूरा पढ़ना निःशुल्क है। इसके बाद CoddyKit PRO हर पाठ अनलॉक करता है, साथ ही अंतर्निर्मित कोड संपादक और चौबीसों घंटे एआई शिक्षक के साथ इंटरैक्टिव अभ्यास भी उपलब्ध कराता है। Go Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

“स्थानीय विकास के लिए Docker Compose” में मैं क्या सीखूँगा?

Go सेवा को PostgreSQL और Redis से जोड़ना आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ Go Academy का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।

क्या Go Academy शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?

पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर Go Academy शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 3वाँ पाठ है।

“स्थानीय विकास के लिए Docker Compose” पाठ पूरा करने में कितना समय लगता है?

CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।

क्या मैं इस Go Academy पाठ में कोड लिख और चला सकता हूँ?

हाँ। हर Go Academy पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।

इस पाठ्यक्रम के सभी पाठ

  1. Go के लिए बहु-चरणीय Docker बिल्ड
  2. पर्यावरण कॉन्फ़िगरेशन और Secrets
  3. स्थानीय विकास के लिए Docker Compose
  4. हेल्थ चेक और प्रोडक्शन ट्यूनिंग
← Go Academy पर वापस जाएँ