工具与部署
工具模块整理开发协作、环境一致性、自动化构建和持续部署相关内容。当前主要覆盖 Git、Docker 和 Jenkins,目标是让项目从本地开发到生产发布都有清晰流程。
模块导航
| 工具 | 内容 | 解决的问题 |
|---|---|---|
| Git 版本控制 | 基础命令、分支管理、远程协作、冲突处理 | 代码协作、版本追踪、变更回滚 |
| Docker 容器化 | 镜像、容器、Dockerfile、Compose、常见问题 | 环境一致、服务编排、部署隔离 |
| Jenkins CI/CD | 安装配置、Pipeline、插件、自动化部署 | 自动构建、自动测试、自动发布 |
推荐落地顺序
- 先规范 Git 工作流,明确分支命名、提交信息、代码评审和合并策略。
- 再用 Docker 固化运行环境,减少“本地能跑,线上不能跑”的问题。
- 最后接入 Jenkins,把安装依赖、测试、构建、部署和通知串成流水线。
Git 协作基线
- 主分支保持可发布状态。
- 功能开发使用独立分支,分支名体现业务或任务编号。
- 提交信息说明“做了什么”和“为什么做”。
- 合并前至少完成本地构建或核心测试。
- 冲突解决后重新运行相关验证。
Docker 使用基线
- 镜像构建过程保持可重复,不依赖本机隐藏状态。
- 生产镜像只包含运行所需文件,减少体积和攻击面。
- 配置通过环境变量注入,不写死在镜像中。
- 多服务开发环境使用
docker compose管理。 - 数据库、缓存等有状态服务要明确数据卷和备份策略。
Jenkins 流水线基线
典型流水线可以拆成以下阶段:
text
Checkout -> Install -> Lint -> Test -> Build -> Docker Build -> Deploy -> Notify每个阶段都应该有明确失败条件。构建失败时不要继续部署,部署失败时要保留日志并支持回滚。
环境变量清单
| 类型 | 示例 | 建议 |
|---|---|---|
| 应用环境 | NODE_ENV、APP_ENV | 区分 development、test、staging、production |
| 服务端口 | PORT | 避免端口硬编码 |
| 接口地址 | API_BASE_URL | 前后端分离项目必须可配置 |
| 数据库 | DB_HOST、DB_USER、DB_PASSWORD | 密码不要提交到仓库 |
| 镜像信息 | IMAGE_NAME、IMAGE_TAG | 与 CI 构建号或 Git SHA 关联 |
发布前检查
- 代码已合并到正确分支。
- CI 构建、测试和静态检查通过。
- Docker 镜像 tag 可追踪到具体提交。
- 数据库迁移脚本已审查并备份关键数据。
- 生产环境变量和密钥已配置。
- 发布失败时有明确回滚方案。
