您好,我的mongo健康检查失败 下面是我的docker-compose文件
version: "2.4"
services:
production-api:
build: .
environment:
- MONGO_URI=mongodb://mongodb:27017/productiondb
volumes:
- .:/app
ports:
- "3000:3000"
depends_on:
- mongodb
# condition: service_healthy
mongodb:
image: mongo
ports:
- "27017:27017"
# healthcheck:
# test: echo 'db.runCommand("ping").ok' | mongo mongo:27017/productiondb --quiet 1
# interval: 10s
# timeout: 10s
# retries: 5
有什么方法可以将MONGO_URI作为变量传递给健康检查?
答案 0 :(得分:1)
您正在进行健康检查,应如下所示:
test: echo 'db.runCommand("ping").ok' | mongo localhost:27017/productiondb --quiet
mongo
,否则只需在mongodb
容器中不存在主机名hostname: mongo
,或者在执行操作时仅使用更常见的localhost
健康检查1
之后的--quiet
似乎是错字,导致出现[main] file [1] doesn't exist
https://docs.mongodb.com/manual/reference/program/mongo/#cmdoption-mongo-quiet 另请参阅:
您可以通过再次指定MONGO_URI
来进行健康检查:
mongodb:
..
environment:
- MONGO_URI=mongodb://mongodb:27017/productiondb
如果您想同时使用两个值,请创建一个env_file
并通过以下方式使用它:
env_file:
- mongo.env # wich contains `MONGO_URI=mongodb://..`