首页/开发/CI/CD 与发布速查/.env 文件的使用边界
环境与配置管理60 条

.env 文件的使用边界

.env 适合本地开发便利:不放版本库、不同步生产;提交模板(.env.example),生产环境由平台注入。

CI/CD 与发布速查开发更新于 2026-10-13

.env 的边界是什么

.env 文件是本地开发的便利工具:把环境变量写进文件、启动时加载。它不应进版本库、不同步生产;仓库里放 .env.example 只列键名不含值,生产环境由平台注入(环境变量、挂载、密钥管理)。事故模式几乎固定:「只差一行没提交」,整份带值文件进仓库,凭据从此跟着每个克隆扩散。

基本信息

本地.env 加加载库,快速启动开发
仓库.env.example 只列键不含值;.env 进 .gitignore
生产由平台注入(环境变量、挂载、密钥管理),不落地明文文件
工具dotenv 类库各有实现,加载与覆盖顺序要写进文档
启动校验必填键缺失时直接失败,不带默认值硬跑
轮换凭据轮换只改托管来源,不动本地文件

典型使用场景

  • 本地开发:假凭据与本地端口,快速启动联调
  • 新人上手:示例文件即配置清单,照键填充即可运行
  • 本地覆盖:个人偏好键值不入库,机器之间隔离
  • CI 对照:流水线变量与示例文件的键名对齐核对
  • 巡检核对:定期扫描仓库,确认 .env 从未入库
  • 流水线环境:密钥由平台注入,不依赖 .env 文件存在

.gitignore 与模板

.gitignore 与模板
.env
.env.local
.env.*.local
!.env.example  # 只放行模板文件
# 若 .env 曾被提交:清理历史之外,务必先轮换其中的凭据

各环境配置来源

环境来源注意
本地开发.env 加载.gitignore 兜底
CI平台变量与密钥键名对照示例文件
生产平台或密钥管理注入不落明文文件
容器挂载或编排注入镜像层不得含值
「只差一行没提交」的历史事故多是 .env:忽略规则加密钥扫描双保险,发现入库先轮换再清理。
加载顺序要明确:.env 与 .env.local 并存时谁覆盖谁要写进文档,避免「本机行为不一致」的幽灵问题。
示例文件更新即文档:新增键同步进示例文件,防止同伴本地启动失败。

易错点

  • .env 被提交后继续使用原值:删除不等于安全,立即轮换其中凭据
  • 生产读 .env:配置来源与变更审计缺失,统一平台注入
  • 示例文件带真实默认值:模板里出现真凭据等于泄漏,占位符一律写假值
  • 把 .env 打进构建产物:前端或镜像把文件带上去,构建产物扫描要把这类文件拦下来

数据来源与参考

  • 12factor.net《Config》
  • dotenv 项目文档(motdotla/dotenv)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌