Docker Compose 多服务编排

更新时间:2025.06.15

← 返回首页
ConfigDocker编排

依赖可启动不等于服务可用

depends_on 只表达启动顺序。若 API 必须等待数据库真正就绪,为数据库定义 healthcheck,再让依赖项使用 condition: service_healthy

services:
  db:
    image: postgres:16
    healthcheck:
      test: ["CMD-SHELL", "pg_isready -U app"]
      interval: 5s
      timeout: 3s
      retries: 10
  api:
    build: .
    depends_on:
      db:
        condition: service_healthy

profiles 能把本地才需要的观测、邮件捕获等服务隔离开,默认启动核心服务,必要时再显式启用。

services:
  mailpit:
    image: axllent/mailpit
    profiles: ["devtools"]

# docker compose --profile devtools up

Compose 适合本地开发和单机编排;跨主机调度、滚动发布和复杂网络治理仍需要更高层的运行平台。

把服务端口只暴露给需要访问的网络,数据库通常不必映射到宿主机,能减少本地误连和端口冲突。

相关笔记