背景
很多部署问题,其实在本地就埋下了:
- 本地依赖版本和线上不同
- 环境变量缺省值不一致
- 本地绕过了鉴权或网络策略
一个简单做法
用 Compose profile 区分场景,但保持核心依赖一致。
services:
app:
build: .
env_file: .env
depends_on: [db, redis]
db:
image: postgres:16
redis:
image: redis:7
总结
环境一致性不是“完全一样”,而是“关键契约一致”。
只要契约一致,很多线上问题能在开发期提前暴露。
部署质量往往从本地开发流程就开始决定了。