Я использую docker-compose для запуска 3 серверов MongoDB, которые должны быть в наборе реплик.Настройка набора реплик MongoDB из docker-compose
Сначала я запускаю 3 сервера MongoDB, затем настраиваю набор реплик. Это, как я хотел бы сделать реплики набора конфигурации в 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
Здесь я пытаюсь повторить конфигурирование набора реплик с помощью докер-компоновать.
# 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
.
Какой рекомендуемый подход? Возможно ли сохранить объект cfg в отдельном файле, который читает docker-compose?