7

से मोंगो डीबी प्रतिकृति सेट को कॉन्फ़िगर करना मैं 3 मोंगोडीबी सर्वर शुरू करने के लिए डॉकर-कंपोज़ का उपयोग कर रहा हूं जो प्रतिकृति सेट में होना चाहिए।डॉकर-कंपोज़

मैं पहली बार 3 मोंगोडीबी सर्वर शुरू करता हूं, फिर मैं प्रतिकृति सेट को कॉन्फ़िगर करता हूं। इस तरह मैं एक bash script में प्रतिकृति सेट config करना होगा है:

mongo --host 127.0.0.1:27017 <<EOF 
var cfg = { 
    "_id": "rs", 
    "version": 1, 
    "members": [ 
     { 
      "_id": 0, 
      "host": "127.0.0.1:27017", 
      "priority": 1 
     }, 

     // snip... 

    ] 
}; 
rs.initiate(cfg); 
rs.reconfig(cfg) 
EOF 

यहाँ मैं प्रतिकृति का उपयोग कर सेट के विन्यस्त को दोहराने के लिए कोशिश कर रहा हूँ डोकर-रचना

# docker-compose.yml 

mongosetup: 
    image: mongo:3.0 
    links: 
    - mongo1:mongo1 
    command: echo 'var cfg = { "_id": "rs", "version": 1, "members": [ { "_id": 0, "host": "127.0.0.1:27017", "priority": 1 }, { "_id": 1, "host": "mongo2:27017", "priority": 1 },{ "_id": 2, "host": "mongo2:27017", "priority": 1 } ] }; rs.initiate(cfg);' | mongo mongo1 

दुर्भाग्य है कि इस त्रुटि बनाता है: yaml.scanner.ScannerError: mapping values are not allowed here

अनुशंसित दृष्टिकोण क्या है? क्या सीएफजी ऑब्जेक्ट को एक अलग फ़ाइल में स्टोर करना संभव है जो डॉकर-लिखता है?

उत्तर

9

मैंने config.sh में कॉन्फ़िगर डालने से समस्या को ठीक किया है जिसे मैंने एंट्रीपॉइंट से बुलाया था।

mongosetup: 
    image: mongo:3.0 
    links: 
    - mongo1:mongo1 
    - mongo2:mongo2 
    - mongo3:mongo3 
    volumes: 
    - ./scripts:/scripts 
    entrypoint: [ "/scripts/setup.sh" ] 

setup.sh

#!/bin/bash 

MONGODB1=`ping -c 1 mongo1 | head -1 | cut -d "(" -f 2 | cut -d ")" -f 1` 

mongo --host ${MONGODB1}:27017 <<EOF 
    var cfg = { 
     "_id": "rs", 
     "version": 1, 
     "members": [ 
      { 
       "_id": 0, 
       "host": "${MONGODB1}:27017", 
[cut..] 
EOF 

मैं डोकर-लिखें कि एक प्रतिकृति सेट और MongoDB-नदी के साथ ElasticSearch में 3 MongoDBs शुरू होता है के साथ एक सेटअप बनाया है।

यह https://github.com/soldotno/elastic-mongo

पर उपलब्ध है

 संबंधित मुद्दे

  • कोई संबंधित समस्या नहीं^_^