← [ BACK_TO_NOTES ]

Docker Compose 多服务开发环境

用 Docker Compose 编排多服务开发环境:healthcheck + depends_on 保证启动顺序、环境变量管理、内部网络通信。

#howto #growing #ops #docker

[!info] related notes

Docker Compose 多服务开发环境

关键设计

1. Healthcheck + depends_on

postgres:
  healthcheck:
    test: ['CMD-SHELL', 'pg_isready']
    interval: 10s
    retries: 5

api:
  depends_on:
    postgres:
      condition: service_healthy  # 等健康检查通过才启动

不只是”容器启动”,而是”服务真正可用”。

2. 环境变量默认值

environment:
  POSTGRES_USER: ${DB_USER:-bodysense}  # 优先 .env,默认 bodysense

3. 内部网络

networks:
  bodysense-network:
    driver: bridge

服务间通过服务名访问:postgres-dev:5432,不是 localhost。

4. 只暴露必要端口

数据库端口只映射到宿主机用于调试,生产环境不暴露。

开发模式选择

模式前端后端数据库
纯本地pnpm dev:webpnpm dev:apiDocker
全 DockerDockerDockerDocker

推荐:数据库用 Docker,应用服务本地跑(热更新更快)。

常见问题

端口冲突

改 .env 中的端口映射。

容器间通信

用服务名(postgres-dev)而不是 localhost。容器内端口是原始端口(5432),不是映射端口。

创建于 2026/6/25 更新于 2026/7/15
Digital Biome
Access

键盘导航

j / k / ↑ / ↓
选择对象
Enter / o
打开选择
/ 或 Ctrl+K
全站搜索
i / f / 1–4
筛选当前列表
g → h / l / p / t / a
首页 / 笔记 / 项目 / 工具 / About
r → 1–9
打开所选对象的关联
u
返回上一页
Esc
关闭浮层 / 取消命令;输入框内清空文本