首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Docker:等待Mongodb ReplicaSet

Docker:等待Mongodb ReplicaSet
EN

Stack Overflow用户
提问于 2020-08-23 02:50:55
回答 1查看 261关注 0票数 0

所有人。我有一个奇怪的问题(谁没有呢?)

我有这个docker-compose文件:

代码语言:javascript
复制
version: '3.4'

services:
  ludustack-web:
    container_name: ludustack-web
    image: ${DOCKER_REGISTRY-}ludustack-web
    build:
      context: .
      dockerfile: LuduStack.Web/Dockerfile
    networks:
      - ludustack-network
    ports:
      - '80:80'
      - '443:443'
    depends_on:
      - 'ludustack-db'
  ludustack-db:
      container_name: ludustack-db
      command: mongod --auth
      image: mongo:latest
      hostname: mongodb
      networks:
        - ludustack-network
      ports:
        - '27017:27017'
      env_file:
        - .env
      environment:
        - MONGO_INITDB_ROOT_USERNAME=${MONGO_INITDB_ROOT_USERNAME}
        - MONGO_INITDB_ROOT_PASSWORD=${MONGO_INITDB_ROOT_PASSWORD}
        - MONGO_INITDB_DATABASE=${MONGO_INITDB_DATABASE}
        - MONGO_REPLICA_SET_NAME=${MONGO_REPLICA_SET_NAME}
      healthcheck:
        test: test $$(echo "rs.initiate().ok || rs.status().ok" | mongo -u $${MONGO_INITDB_ROOT_USERNAME} -p $${MONGO_INITDB_ROOT_PASSWORD} --quiet) -eq 1
        interval: 60s
        start_period: 60s
      command: ["--replSet", "${MONGO_REPLICA_SET_NAME}", "--bind_ip_all"]
networks:
  ludustack-network:
    driver: bridge

问题是web应用程序只等待mongodb容器准备就绪,而不是副本集本身。因此,当应用程序启动时,它会崩溃,因为复制集还没有准备好。在崩溃之后,它立即记录继续其工作的副本集:

关于如何让web应用程序等待副本集准备就绪,有什么建议吗?

EN

回答 1

Stack Overflow用户

发布于 2020-08-24 17:26:48

应用程序确实等待了30秒。您可以通过调整serverSelectionTimeoutMS URI选项或通过特定于语言的方法来增加超时。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63539943

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档