Skip to content

Tour Mate 项目 - Docker + Spring Boot + 多服务 配置踩坑与最佳实践笔记

最后更新:2026-02

1. 核心原则(必须记住)

  • 敏感信息(密码、密钥、token)绝不能硬编码在 docker-compose.yml / application.yml / git 仓库
  • 配置应遵循 12-Factor App:代码与配置分离,运行时注入
  • Spring Boot 推荐运行时通过环境变量激活 profile(而非构建时 Maven profile)
  • Docker 网络 subnet 必须用内网私有段(172.16–172.31、10.、192.168.),不能写公网 IP

2. .env 文件体系(最重要部分)

文件作用对比

文件是否提交 Git用途典型存放位置启动方式
.env.example模板 + 注释 + 安全提示项目根目录手动 cp → .env
.env开发/本地真实值docker/ 或根目录docker-compose 自动加载(同级)
.env.prod生产真实值(强密码、公网IP等)项目根目录--env-file .env.prod 或 env_file
.env.infra / .env.dev(可选)基础设施专用不推荐区分,易混乱

推荐做法(2025–2026 主流)

  • 只保留 一份 .env.prod(生产用)
  • 开发也尽量用同一套变量结构,只是值不同
  • 两个 compose 文件都写:
yaml
env_file:
  - ../.env.prod          # 或 ./../.env.prod 看实际层级

Powered by VitePress