版本管理与构建
专业项目需要可靠的版本控制和标准化的构建流程。
Lino 采用语义化版本控制(SemVer)来管理每个服务的版本,并提供命令来生成根据服务当前版本命名的 Docker 镜像。
服务版本管理
Lino 中的每个服务都有独立版本控制,允许它们以不同节奏发展,而无需全局同步。
SemVer 标准
MAJOR.MINOR.PATCH
- MAJOR → 不兼容的变更(breaking changes)。
- MINOR → 向后兼容的新功能。
- PATCH → Bug 修复和内部改进。
示例:
1.0.0 → 第一个稳定版本。
1.1.0 → 添加新端点而不破坏兼容性。
2.0.0 → 需要客户端更新的变更。
lino version 命令
CLI 提供对版本递增的原生支持:
lino version bump
交互式向导将指导您选择递增类型(major、minor、patch),并自动用新版本更新服务配置文件。
每次执行都会更新服务版本清单,确保:
- 清晰的变更追踪。
- 与发布实践保持一致。
- 与 CI/CD 流水线对齐。
Docker 镜像构建
Lino 会自动为每个服务或 Web 应用的每个版本生成 Docker 镜像,从而消除手动操作。
命名规范:
project-name/services/service-name : major.minor.patch
镜像可以发布到任何注册表:
- Docker Hub
- GitHub Container Registry
- AWS ECR
- Azure Container Registry
- 或任何其他兼容的仓库。
lino build 命令
要编译并生成 Docker 镜像,只需执行:
lino build
该过程发生的操作:
1. 编译服务和/或 Web 应用的代码。
2. 应用必要的配置(连接字符串、密钥、环境变量)。
3. 根据当前 SemVer 版本生成 Docker 镜像。
4. 镜像使用标准化的名称和标签。
该过程保证构建一致且可复现,减少生产环境中的故障,并加速 CI/CD 流水线中的部署。
因此,Lino 将服务独立版本管理与自动化构建流程结合,实现发布治理并在任何环境中可靠分发。
