Files
cps-develop-docs/01 - Knowledge & Prompts/AI Prompts/P7_生成部署流水线.md

2.8 KiB
Raw Blame 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 构建
    • 基础镜像该怎么选?(使用 slimalpine)。
    • 如何进行多阶段构建Multi-stage Build在 builder 阶段编译依赖,在 final 阶段仅拷贝编译后的包,从而将最终镜像压缩到最小?
    • .dockerignore 应该排除哪些不必要的文件(如 tests/, venv/, .git/
  4. 流水线编排 (Pipeline as Code)Jenkinsfile 中需要规划哪些核心 StageCheckout -> 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 (包含多环境流转与测试门禁的声明式流水线)