一句话承诺:一张图+一个yaml,让服务按健康状态顺序启动,减少“连不上”的尴尬。


healthy
healthy
数据库
API服务
Web前端

docker-compose.yml(示例)

version: '3.8'
services:
  db:
    image: postgres:14
    healthcheck:
      test: ["CMD-SHELL", "pg_isready -U postgres"]
      interval: 5s
      timeout: 3s
      retries: 10
  api:
    build: ./api
    depends_on:
      db:
        condition: service_healthy
  web:
    build: ./web
    depends_on:
      api:
        condition: service_healthy

少量解释

  • 使用 healthcheck 暴露容器健康;depends_on 条件为 service_healthy。
  • 延迟启动可减少初期连接失败与重试开销。

常见坑与替代法

  • 坑:健康检查脚本不可靠。替代:选择真实依赖的探针命令。
  • 坑:健康通过但端口未就绪。替代:增加探针延迟与重试。

下一篇预告

Prometheus 指标与告警:Alertmanager 最小配置(yaml+图)。

更多推荐