7

Uso la finestra mobile-compose per avviare 3 server MongoDB che dovrebbero essere in un set di repliche.Configurazione del set di repliche MongoDB da docker-compose

Prima avvio 3 server MongoDB, quindi configuro il set di repliche. Questo è come vorrei fare il set di repliche config in un bash script:

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 

Qui sto cercando di replicare la configurazione del set di repliche con finestra mobile-comporre.

# 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 

Sfortunatamente ciò crea questo errore: yaml.scanner.ScannerError: mapping values are not allowed here.

Qual è l'approccio consigliato? È possibile memorizzare l'oggetto cfg in un file separato che legge la finestra mobile di composizione?

risposta

9

Ho risolto il problema inserendo la configurazione in setup.sh che ho chiamato da entrypoint.

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 

ho creato una configurazione con finestra mobile-composizione che inizia 3 MongoDBs in un set di repliche e elasticsearch con MongoDB-fiume.

E 'disponibile allo https://github.com/soldotno/elastic-mongo

Problemi correlati