加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

从docker-compose配置MongoDB副本集

发布时间:2020-12-16 03:44:01 所属栏目:安全 来源:网络整理
导读:我正在使用docker-compose来启动3个应该在副本集中的MongoDB服务器. 我首先启动3个MongoDB服务器,然后配置副本集. 这就是我在bash script中执行副本集配置的方法: mongo --host 127.0.0.1:27017 在这里,我试图使用docker-compose复制配置副本集. # docker-c

我正在使用docker-compose来启动3个应该在副本集中的MongoDB服务器.

我首先启动3个MongoDB服务器,然后配置副本集.
这就是我在bash script中执行副本集配置的方法:

mongo --host 127.0.0.1:27017 <

在这里,我试图使用docker-compose复制配置副本集.

# docker-compose.yml

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

不幸的是,这会产生此错误:yaml.scanner.ScannerError:此处不允许使用映射值.

推荐的方法是什么?
是否可以将cfg对象存储在docker-compose读取的单独文件中?

我通过将配置放在我从入口点调用的setup.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 <

我用docker-compose创建了一个设置,它在一个副本集中启动了3个MongoDB,在mongodb-river中启动了ElasticSearch.

它在https://github.com/soldotno/elastic-mongo可用

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读