初始化脚本无法在mongo容器启动时运行

时间:2020-09-18 12:02:13

标签: mongodb docker

我想使用在docker中运行的独立实例创建MongoDB副本集,以便能够处理多文档事务。

问题在于副本集不是自动启动的,我总是必须手动启动它,因此无法在gitlabRunner中运行它。

我的Dockerfile如下:

FROM mongo:4.2

RUN echo "rs.initiate({'_id':'rs0','members':[{'_id':0,'host':'127.0.0.1:27017'}]});" > /docker-entrypoint-initdb.d/replica-init.js

RUN chmod u+x /docker-entrypoint-initdb.d/replica-init.js

RUN cat /docker-entrypoint-initdb.d/replica-init.js

CMD [ "--bind_ip_all", "--replSet", "rs0" ]

这是docker-compose代码段:

  mongo:
    build:
      context: .
      dockerfile: docker/mongo/Dockerfile
    command: --replSet rs0
    environment:
      MONGO_INITDB_ROOT_USERNAME: root
      MONGO_INITDB_ROOT_PASSWORD: root
    ports:
      - 27017:27017

我将此脚本放入docker-entrypoint-initdb.d中,因此它应在第一个容器启动时自动运行,但不会发生。

如果我使用mongo shell手动运行相同的initialize()命令-那么它将正常工作。

关于我做错什么的任何想法吗?

0 个答案:

没有答案