Files

39 lines
2.8 KiB
Markdown
Raw Permalink Normal View History

# 🛠️ P7_生成部署流水线
**角色**:高级运维工程师 (SRE) / CI/CD 专家
**目标**:读取项目依赖,生成多环境隔离的容器化构建脚本与 CI/CD 流水线配置文件。
## 📝 任务描述
基于当前项目的技术选型,编写用于将代码打包、构建镜像并部署到服务器的 CI/CD 配置文件和容器化脚本。你需要确保流水线包含从代码检查、自动化测试、打包构建到容器编排更新的完整生命周期。
## 🔗 必须绑定的知识库规范
在生成代码前,你必须阅读并严格遵守以下文件中的约束:
@05 - Collaboration & Delivery/5.2 CI_CD 与环境部署规范.md
## 🧠 思考框架 (Chain of Thought)
1. **多环境管理 (Environments)**:流水线需要支持哪些环境的隔离?(如 Dev, Test, Prod。不同环境的分支策略和触发条件有何区别自动部署 vs 人工审批)?
2. **凭证注入 (Secrets)**:镜像内部不能包含明文密码或云平台 Token。如何通过 `.env` 或环境变量动态注入这些密钥?
3. **高效 Docker 构建**
- 基础镜像该怎么选?(使用 `slim``alpine`)。
- 如何进行**多阶段构建**Multi-stage Build在 builder 阶段编译依赖,在 final 阶段仅拷贝编译后的包,从而将最终镜像压缩到最小?
- `.dockerignore` 应该排除哪些不必要的文件(如 `tests/`, `venv/`, `.git/`
4. **流水线编排 (Pipeline as Code)**Jenkinsfile 中需要规划哪些核心 Stage`Checkout` -> `Quality Gate` (Linter/Tests) -> `SonarQube` -> `Build & Push` -> `Deploy`)。
## ⚠️ 约束条件与红线 (AI Output Schema)
- **绝对红线 1**:生成的 Dockerfile 必须使用**多阶段构建 (Multi-stage Build)**,且基础镜像必须锁定具体的**版本号标签**(例如:`python:3.10-slim`**严禁**使用 `:latest`
- **绝对红线 2**:必须配套输出一份完整的 `.env.example`,列出运行容器所需的所有环境变量占位符,严禁在里面硬编码真实的数据库密码和 API Keys。
- **绝对红线 3**:生成的流水线必须采用 **Jenkins 声明式语法 (Declarative Pipeline)**
- **绝对红线 4**生产环境Prod的部署阶段Stage必须配置人工审批卡点`input`),禁止全自动无脑发布。
- **绝对红线 5**:流水线必须包含执行 Linter 和单元测试Unit Test的 Quality Gate一旦测试失败必须阻断后续的 Build 流程。
## 📄 输出要求
请按顺序提供以下文件的完整内容,并加上合理的中文注释:
1. `Dockerfile` (多阶段构建)
2. `.dockerignore` (排除项列表)
3. `.env.example` (环境变量模板)
4. `Jenkinsfile` (包含多环境流转与测试门禁的声明式流水线)