首页/开发/CI/CD 与发布速查/构建与环境配置分离
环境与配置管理60 条

构建与环境配置分离

制品不携带环境配置:同一镜像部署到所有环境,环境差异在运行时注入;构建期需要凭据时用挂载而非固化。

CI/CD 与发布速查开发更新于 2026-10-12
原则镜像/包与配置分离(12-Factor 基础)
构建期凭据BuildKit secret 挂载、npm/pip 私有源令牌临时注入
运行期环境变量/挂载文件/密钥管理注入,变更无需重构建

反例与正例

反例与正例
# 反例:构建时把 API_URL 写进产物
#   VITE_API_URL=https://prod.example.com npm run build
# 正例:同一产物,运行时注入(前端可通过运行时配置接口)
前端构建期变量是常见例外:需要运行时配置能力(config.js/接口下发)才能保持一次构建。

易错点

  • 每环境各构建一次:制品漂移且验证失效,推动运行时注入改造
  • 构建参数里带密钥:留在镜像历史里,secret 挂载替代

数据来源与参考

  • 12factor.net《Build, release, run》
  • Docker Docs《Build secrets》
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌