Mongo容器,其副本集在docker-compose中只有一个节点

问题描述 投票:0回答:1

我想用Mongo实例创建一个Docker容器。特别是,我想创建一个只有一个节点的副本集(因为我对事务感兴趣,并且它们仅适用于副本集)。

Dockerfile

FROM mongo
RUN echo "rs.initiate();" > /docker-entrypoint-initdb.d/replica-init.js
CMD ["--replSet", "rs0"]

docker-compose.yml

version: "3"
services:
  db:
    build:
      dockerfile: Dockerfile
      context: .
    ports:
      - "27017:27017"

[如果我单独使用Dockerfile,一切都很好,但是如果我使用docker-compose,它将无法正常工作:实际上,如果我随后登录到该容器,则系统会提示我输入rs0:OTHER>而不是rs0:PRIMARY>

我咨询了这些链接,但提出的解决方案无效:

https://github.com/docker-library/mongo/issues/246#issuecomment-382072843https://github.com/docker-library/mongo/issues/249#issuecomment-381786889

mongodb docker docker-compose replicaset
1个回答
0
投票

即使RS中只有一个节点,您仍然需要发出replSetInitiate

另请参见here

© www.soinside.com 2019 - 2024. All rights reserved.