Docker Compose जनरेटर

फ़ॉर्म से मान्य docker-compose.yml बनाएँ: सर्विस, इमेज, पोर्ट, एनवायरनमेंट, वॉल्यूम, depends_on और रीस्टार्ट नीति, PostgreSQL, MySQL और Redis प्रीसेट के साथ।

सर्विस 1
सर्विस 2
docker-compose.yml

मौजूदा Compose Specification के अनुसार ("version:" की नहीं)। नामित वॉल्यूम अपने-आप घोषित होते हैं। इस्तेमाल से पहले उदाहरण पासवर्ड बदलें।

संबंधित टूल्स

सभी देखें

Docker Compose जनरेटर क्या है?

YAML इंडेंटेशन से जूझे बिना मल्टी-कंटेनर सेटअप के लिए docker-compose.yml बनाएँ। प्रीसेट (PostgreSQL, MySQL, Redis, MongoDB, Nginx, आपका अपना ऐप) से सर्विस जोड़ें या खाली शुरू करें, फिर इमेज या बिल्ड कॉन्टेक्स्ट, पोर्ट, एनवायरनमेंट वेरिएबल, वॉल्यूम, निर्भरताएँ, रीस्टार्ट नीति और कमांड भरें। टाइप करते समय YAML अपडेट होता है और त्रुटियाँ समझाई जाती हैं।

Docker Compose जनरेटर का उपयोग कैसे करें

  1. उदाहरण सर्विस बदलें या प्रीसेट डालने के लिए सर्विस जोड़ें इस्तेमाल करें।
  2. हर सर्विस के लिए इमेज (या बिल्ड कॉन्टेक्स्ट (इमेज न हो तो)), पोर्ट (होस्ट:कंटेनर), एनवायरनमेंट (KEY=value), वॉल्यूम (स्रोत:लक्ष्य), निर्भर है और रीस्टार्ट नीति सेट करें।
  3. लाल रंग में बताई कोई भी समस्या (अमान्य नाम, पोर्ट, वेरिएबल या निर्भरताएँ) ठीक करें।
  4. docker-compose.yml डाउनलोड करें और docker compose up -d चलाएँ।

उदाहरण

इनपुट
Service app (build ., port 3000, NODE_ENV=production, depends on db) + PostgreSQL preset
आउटपुट
services:
  app:
    build: .
    restart: unless-stopped
    ports:
      - "3000:3000"
    environment:
      NODE_ENV: production
    depends_on:
      - db
  db:
    image: postgres:16-alpine
    restart: unless-stopped
    ports:
      - "5432:5432"
    environment:
      POSTGRES_USER: app
      POSTGRES_PASSWORD: change-me
      POSTGRES_DB: app
    volumes:
      - pgdata:/var/lib/postgresql/data
volumes:
  pgdata: {}

Docker Compose जनरेटर का उपयोग कब करें

लोकल डेवलपमेंट स्टैक, डेमो और सरल सिंगल-होस्ट डिप्लॉयमेंट के लिए इसका उपयोग करें। प्रोडक्शन के लिए आप आमतौर पर हेल्थ चेक, रिसोर्स लिमिट, सीक्रेट और नेटवर्क हाथ से जोड़ेंगे, या Kubernetes जैसे ऑर्केस्ट्रेटर का उपयोग करेंगे। कहीं भी इस्तेमाल करने से पहले प्रीसेट में दिए उदाहरण पासवर्ड बदल दें।

Docker Compose जनरेटर कैसे काम करता है

फ़ॉर्म को मौजूदा Compose Specification (बिना अप्रचलित version: key के) के अनुसार ऑब्जेक्ट में बदला जाता है और js-yaml से YAML में सीरियलाइज़ किया जाता है। पोर्ट मैपिंग कोट की जाती हैं, क्योंकि 22:22 जैसे बिना कोट वाले मान YAML 1.1 पार्सर में base-60 संख्या की तरह पढ़े जा सकते हैं। KEY=value एनवायरनमेंट पंक्तियाँ मैपिंग बन जाती हैं, और जिस वॉल्यूम का स्रोत पाथ के बजाय नाम है (जैसे pgdata:/var/lib/postgresql/data) वह शीर्ष-स्तर की volumes: key के नीचे अपने आप घोषित होता है। सर्विस नाम, पोर्ट प्रारूप, KEY=value सिंटैक्स और depends_on लक्ष्य सत्यापित किए जाते हैं।

सामान्य उपयोग मामले

  • किसी ऐप को PostgreSQL और Redis के साथ लोकली चलाना
  • टीम के साथ दोहराने योग्य डेव एनवायरनमेंट साझा करना
  • सेल्फ़-होस्टेड टूल के लिए compose फ़ाइल बनाना
  • उदाहरणों से Compose सिंटैक्स सीखना

सुरक्षा नोट

डेटाबेस पोर्ट प्रकाशित करना (जैसे 5432:5432) उन्हें सभी होस्ट इंटरफ़ेस पर उजागर करता है। सर्वर पर पोर्ट मैपिंग हटाएँ या 127.0.0.1 से बाँधें, और मज़बूत पासवर्ड या सीक्रेट इस्तेमाल करें।

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

version: वाली पंक्ति क्यों नहीं है?

Docker Compose v2 में इस्तेमाल होने वाली Compose Specification में version key अप्रचलित है; मौजूदा संस्करण उसे अनदेखा करते हैं और चेतावनी छापते हैं।

क्या depends_on डेटाबेस के तैयार होने तक इंतज़ार करता है?

नहीं, यह केवल शुरू होने का क्रम तय करता है। healthcheck और condition: service_healthy जोड़ें, या अपने ऐप में कनेक्शन दोबारा आज़माएँ।

नामित वॉल्यूम और बाइंड माउंट में क्या अंतर है?

नामित वॉल्यूम (pgdata:/path) Docker सँभालता है और कंटेनर दोबारा बनने पर भी बचा रहता है; बाइंड माउंट (./data:/path) आपकी मशीन का फ़ोल्डर मैप करता है।

और श्रेणियाँ देखें