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?