docker-compose.yml फ़ाइल में YAML सिंटैक्स की ग़लतियाँ और Compose की आम ग़लतियाँ जाँचें, हर सिंटैक्स ग़लती की सटीक लाइन के साथ।
टूल के बटन और संदेश अभी अंग्रेज़ी में हैं। टूल का काम करने का तरीका अंग्रेज़ी पेज जैसा ही है।
इस टूल के बारे में
Docker Compose YAML वैलिडेटर के बारे में
Docker Compose YAML वैलिडेटर आपकी docker-compose.yml को असली YAML की तरह parse करता है और फिर वह संरचना जाँचता है जिसकी Docker Compose उम्मीद करता है। सिंटैक्स की ग़लतियाँ सटीक लाइन और कॉलम के साथ बताई जाती हैं। parse करने के बाद यह जाँचता है कि कम से कम एक service वाला services सेक्शन है, हर service में image या build key है, service keys जानी-पहचानी Compose options हैं ताकि imagee जैसी टाइपिंग की ग़लतियाँ पकड़ी जाएँ, ports "8080:80" जैसे मान्य फ़ॉर्मेट में एक list हैं, बिना quote वाले port नंबर चिह्नित किए जाते हैं, और depends_on में लिखी हर service सच में मौजूद है। यह यह भी याद दिलाता है कि Compose v2 में top-level version key अब पुरानी (obsolete) हो चुकी है। indentation के लिए इस्तेमाल किए गए tabs बताए जाते हैं, क्योंकि YAML में सिर्फ़ spaces की अनुमति है। टाइप करते समय ही जाँच आपके ब्राउज़र में चलती है। यह एक तेज़ पहली जाँच है, docker compose config का पूरा विकल्प नहीं, जो variables और extends को भी resolve करता है। यह रोज़ इस्तेमाल होने वाली service options पहचानता है, जिनमें image, build, command, entrypoint, environment, env_file, ports, expose, volumes, depends_on, networks, restart, container_name, healthcheck, labels, logging, deploy, secrets, configs, profiles और extends शामिल हैं, और यह कस्टम x- extension फ़ील्ड की अनुमति देता है। हर समस्या उसकी service के नाम के साथ दिखाई जाती है, इसलिए लंबी फ़ाइल ठीक करना जल्दी हो जाता है।
Docker Compose YAML वैलिडेटर का इस्तेमाल कैसे करें
1
अपनी फ़ाइल पेस्ट करें
docker-compose.yml या compose.yaml का कंटेंट एडिटर में कॉपी करें।
2
समस्याएँ पढ़ें
सिंटैक्स की ग़लतियाँ लाइन और कॉलम दिखाती हैं; संरचना की समस्याएँ संबंधित service का नाम बताती हैं।
3
ठीक करें और फिर जाँचें
एडिट करते समय फ़ाइल फिर से जाँची जाती है, जब तक कोई ग़लती न बचे।
4
आख़िरी जाँच चलाएँ
जब फ़ाइल यहाँ साफ़ हो जाए, तो variables resolve करने और आख़िरी कॉन्फ़िगरेशन पक्का करने के लिए अपनी मशीन पर docker compose config चलाएँ।
मुख्य खूबियाँ
असली YAML parsing
पूरा YAML parser इस्तेमाल करता है, इसलिए indentation और सिंटैक्स की ग़लतियाँ लाइन नंबर के साथ मिलती हैं।
keys की टाइपिंग ग़लतियाँ पकड़ता है
imagee या port जैसी अनजान service keys चिह्नित की जाती हैं।
dependencies जाँचता है
उन depends_on एंट्री को बताता है जो ऐसी services की ओर इशारा करती हैं जो मौजूद नहीं हैं।
निजी
आपकी फ़ाइल आपके ब्राउज़र में जाँची जाती है और कभी अपलोड नहीं होती।
1 / 2
Compose फ़ाइल कब जाँचें
docker compose up से पहले ग़लतियाँ पकड़ें
डिप्लॉय करने से पहले
key की टाइपिंग ग़लती को कुछ टूल चुपचाप अनदेखा कर देते हैं और पता तभी चलता है जब कोई service ठीक से काम नहीं करती।
उदाहरणपता चलता है कि एक service में environment: की जगह enviroment: लिखा है, इसलिए उसके variables कभी सेट ही नहीं हुए।
कॉपी किए गए उदाहरण
ब्लॉग से कॉपी की गई फ़ाइलों में अक्सर tabs या बिगड़ा indentation होता है।
उदाहरणकॉपी किया उदाहरण पेस्ट करें और लाइन 12 का वह tab ठीक करें जो Compose को उसे लोड करने से रोक रहा है।
कोड रिव्यू
किसी सहकर्मी के Compose बदलाव बिना चलाए जल्दी जाँचें।
उदाहरणपता चलता है कि नई worker service “redis-cache” पर depends_on है, लेकिन service का नाम “redis” है।
Docker सीखना
कमांड लाइन छूने से पहले समझें कि Compose फ़ाइल क्यों फ़ेल हो रही है।
उदाहरणएक शुरुआती की फ़ाइल indentation के लिए tabs इस्तेमाल करती है; वैलिडेटर सटीक लाइन बताता है, और spaces पर बदलने से समस्या ठीक हो जाती है।
ऐप सेल्फ़-होस्ट करना
स्टैक शुरू करने से पहले Nextcloud, Jellyfin या n8n जैसे टूल की Compose फ़ाइलें जाँचें।
उदाहरणकिसी ऐप की डेटाबेस service का नाम postgres है लेकिन depends_on में db लिखा है, और वैलिडेटर ग़ायब service बताता है।
फ़ेल हो रहे स्टैक को डीबग करना
जब docker compose up शुरू होने से मना करे, तो संरचना की ग़लतियों को जल्दी ख़ारिज करें।
उदाहरणएक service में न image है न build, और यही वजह है कि Compose उसका container नहीं बना पा रहा।
Compose के सुझाव
सबसे आम समस्याओं से बचें
port mappings को quote करें
8080:80 नहीं, "8080:80" लिखें। 22:22 जैसी बिना quote वाली वैल्यू को YAML base-60 नंबर की तरह पढ़ सकता है।
version key हटा दें
Compose v2 version: को अनदेखा करता है, इसलिए आप इसे हटा सकते हैं।
आख़िरी जाँच
variables समेत पूरी तरह resolve की गई फ़ाइल देखने के लिए अपनी मशीन पर docker compose config चलाएँ।
YAML को JSON में बदलें
YAML को JSON में बदलकर ठीक-ठीक देखें कि उसे कैसे समझा जा रहा है।
YAML सिंटैक्स, ख़ाली न हो ऐसा services सेक्शन, हर service के लिए image या build key, जानी-पहचानी service keys, port फ़ॉर्मेट, depends_on के हवाले, और indentation में tabs।
क्या यह docker compose config जैसा ही है?
नहीं। यह सिंटैक्स और आम ग़लतियों की तेज़ जाँच है। docker compose config variables, extends और profiles को भी resolve करता है।
क्या version key ज़रूरी है?
नहीं। Compose v2 में यह पुरानी हो चुकी है और अनदेखी की जाती है। वैलिडेटर एक नोट दिखाता है लेकिन इसे ग़लती नहीं मानता।
बिना quote वाला port क्यों चिह्नित किया जाता है?
YAML 22:22 जैसी कुछ बिना quote वाली वैल्यू को base 60 के नंबर की तरह समझ सकता है। ports को quote करने से यह नहीं होता।
क्या मेरी फ़ाइल अपलोड होती है?
नहीं। यह आपके ब्राउज़र में parse होती है।
docker-compose.yml फ़ाइल क्या है?
एक YAML फ़ाइल जो किसी ऐप्लिकेशन के containers, networks और volumes बताती है, ताकि पूरा स्टैक docker compose up से शुरू किया जा सके।
tabs की अनुमति क्यों नहीं है?
YAML मानक indentation के लिए सिर्फ़ spaces की अनुमति देता है। एक tab फ़ाइल को अमान्य बना देता है, और वैलिडेटर वह लाइन बताता है जहाँ वह है।
क्या यह ${DB_PASSWORD} जैसे environment variables जाँचता है?
यह उन्हें टेक्स्ट के रूप में स्वीकार करता है लेकिन उनकी वैल्यू नहीं भरता, क्योंकि यह आपकी .env फ़ाइल नहीं देख सकता। docker compose config उन्हें आपकी मशीन पर resolve करता है।
क्या यह ग़लत लिखी keys पकड़ता है?
हाँ। service keys को जानी-पहचानी Compose options से मिलाया जाता है, इसलिए imagee या depends_no जैसी टाइपिंग ग़लती चुपचाप अनदेखी होने के बजाय बताई जाती है।
क्या compose.yaml फ़ाइल जाँच सकते हैं?
हाँ। compose.yaml नया डिफ़ॉल्ट फ़ाइल नाम है। कंटेंट का फ़ॉर्मेट वही है, इसलिए उसे उसी तरह पेस्ट करें।
depends_on क्या करता है?
यह शुरू होने का क्रम तय करता है: कोई service उन services के बाद शुरू होती है जिन पर वह निर्भर है। वैलिडेटर जाँचता है कि लिखा हर नाम फ़ाइल में मौजूद है।
क्या यह x- extension फ़ील्ड सपोर्ट करता है?
हाँ। x- से शुरू होने वाली keys की अनुमति है, क्योंकि Compose इन्हें दोबारा इस्तेमाल होने वाले ब्लॉक और कस्टम सेटिंग के लिए इस्तेमाल करता है।