Bir çoğaltma kümesinde olması gereken 3 MongoDB sunucusunu başlatmak için docker-compose kullanıyorum.Docker-compose öğesinden MongoDB çoğaltma kümesini yapılandırma
İlk önce 3 MongoDB sunucusunu çalıştırıyorum, ardından çoğaltma kümesini yapıyorum. Bu ben bash script içinde çoğaltma kümesi yapılandırma yapacağını nasıl: Ben kullanarak yineleme kümesinin konfigüre edilmesini çoğaltmak için çalışıyorum
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
İşte liman işçisi-oluşturur.
# 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
Ne yazık ki bu şu hatayı oluşturur: yaml.scanner.ScannerError: mapping values are not allowed here
.
Önerilen yaklaşım nedir? cfg nesnesini, docker-compose okumaları okuyan ayrı bir dosyada saklamak mümkün mü?