मुख्य सामग्री पर जाएँ
docker-compose.yml → Issues

Docker Compose Validator – YAML ऑनलाइन जाँचें

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.yml फ़ाइल जाँचने वाले Docker Compose वैलिडेटर टूल का चित्र

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 to JSON खोलें

सीक्रेट फ़ाइल से बाहर रखें

पासवर्ड environment में लिखने के बजाय .env फ़ाइल या Docker secrets में रखें। असली क्रेडेंशियल कभी commit न करें।

दो spaces से indent करें

YAML में tabs मना हैं, और indentation के स्तर मिलाने से फ़ाइल का मतलब बदल जाता है। हर स्तर के लिए दो spaces का चलन है।