स्थानीय विकास के लिए Docker Compose
Go सेवा को PostgreSQL और Redis से जोड़ना
स्थानीय विकास के लिए 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 पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।
इस पाठ्यक्रम के सभी पाठ
- Go के लिए बहु-चरणीय Docker बिल्ड
- पर्यावरण कॉन्फ़िगरेशन और Secrets
- स्थानीय विकास के लिए Docker Compose
- हेल्थ चेक और प्रोडक्शन ट्यूनिंग