You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Docker部署Azure Cosmos DB模拟器的健康检查方案咨询

Cosmos DB模拟器容器添加健康检查的方案

给你的Cosmos DB Linux模拟器容器配置健康检查,最直接有效的方式是利用模拟器自带的端点验证服务状态,结合你已经安装的curl工具来实现。下面是两种可行的配置方式:

方案一:在docker-compose.yml中添加(推荐)

直接在cosmosdb服务的配置里新增healthcheck字段,无需修改Dockerfile,灵活性更高:

cosmosdb:
    build:
      context: .
      dockerfile: Dockerfile.cosmosdb
    environment:
      - NODE_TLS_REJECT_UNAUTHORIZED=0
      - AZURE_COSMOS_EMULATOR_IP_ADDRESS_OVERRIDE=xxx.xxx.xxx.xxx
    ports:
      - "8081:8081"
      - "8900:8900"
      - "8901:8901"
      - "8979:8979"
      - "10250:10250"
      - "10251:10251"
      - "10252:10252"
      - "10253:10253"
      - "10254:10254"
      - "10255:10255"
      - "10256:10256"
      - "10350:10350"
    networks:
      my-network:
        ipv4_address: xxx.xxx.xxx.xxx
    healthcheck:
      test: ["CMD", "curl", "-f", "-k", "https://localhost:8081/_explorer/emulator.pem"]
      interval: 30s       # 每隔30秒检查一次
      timeout: 10s        # 检查超时时间10秒
      retries: 5          # 重试5次后判定不健康
      start_period: 60s   # 启动后60秒再开始检查(模拟器初始化较慢)

参数说明:

  • -k:忽略自签名证书的校验(Cosmos模拟器默认使用自签证书)
  • -f:curl返回非200状态码时直接退出并返回失败,符合健康检查的失败判定逻辑
  • start_period设为60秒是因为Linux版Cosmos模拟器启动初始化需要一定时间,避免误判

方案二:在Dockerfile中添加健康检查指令

如果希望把健康检查逻辑整合到镜像里,可以修改Dockerfile,在末尾添加HEALTHCHECK指令:

FROM mcr.microsoft.com/cosmosdb/linux/azure-cosmos-emulator

RUN apt update && apt upgrade -y
RUN apt install curl -y

HEALTHCHECK --interval=30s --timeout=10s --retries=5 --start-period=60s \
    CMD curl -f -k https://localhost:8081/_explorer/emulator.pem

CMD /usr/local/bin/cosmos/start.sh

注意事项:

两种方案都依赖你已经在Dockerfile中安装的curl工具,所以无需额外安装依赖。优先推荐方案一,因为可以在不重新构建镜像的前提下调整健康检查的参数(比如间隔、超时时间)。

内容的提问来源于stack exchange,提问作者Alan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.22 19:54:21