本地起一组依赖服务时,docker compose up -d 返回并不代表服务已经能连上。Compose v2 可以加 --wait,等容器进入 running 或 healthy 后再返回。
环境:Docker Compose v2。建个最小 compose.yml:
services:
web:
image: nginx:alpine
healthcheck:
test: ["CMD-SHELL", "wget -q -O /dev/null http://127.0.0.1 || exit 1"]
interval: 2s
timeout: 1s
retries: 10
运行:
docker compose up -d --wait
docker compose ps
这样脚本可以在启动命令成功后继续做后续请求,不用自己写固定 sleep 5。没有配置 healthcheck 的服务,--wait 只能等到容器 running;需要检查接口可用性时,最好把健康检查也写上。