![](/img/trans.png)
[英]Why does the docker-compose healthcheck of my mongo container always fail?
[英]docker-compose mongo healthcheck failing
您好,我的 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 作為變量傳遞給健康檢查?
你的健康檢查應該是這樣的:
test: echo 'db.runCommand("ping").ok' | mongo localhost:27017/productiondb --quiet
mongo
不存在於mongodb
容器中,除非您在撰寫文件中指定hostname: mongo
,或者在進行健康檢查時僅使用更常見的localhost
--quiet
之后的1
似乎是一個拼寫錯誤,導致[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://..`
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.