logo
0
0
WeChat Login
feat: 搭建多环境镜像构建系统和 Claude Code 集成

本地开发工具

此目录包含本地开发使用的脚本和模板,不会打包进镜像(在 .dockerignore 中排除)。

📁 目录结构

dev/ ├── templates/ # YAML 配置模板 │ ├── vscode.yml # 开发环境配置模板 │ └── pipeline.yml # CI 流水线配置模板 ├── generate-cnb-yml.sh # 生成 cnb.yml 脚本 └── README.md # 本文件

🚀 使用方法

生成 cnb.yml

bash dev/generate-cnb-yml.sh

执行流程

  1. 读取环境变量(CNB_DOCKER_REGISTRY, CNB_REPO_SLUG_LOWERCASE
  2. 加载 templates/vscode.yml 模板
  3. 替换 __DEV_IMAGE__ 为实际镜像地址
  4. 合并 templates/pipeline.yml 模板(保持 CNB 变量不变)
  5. 生成 /workspace/cnb.yml

自定义配置

修改开发环境配置

编辑 templates/vscode.yml

$: vscode: - runner: cpus: 64 # 修改 CPU 配置 docker: image: __DEV_IMAGE__ # 保持占位符不变 services: - vscode - docker

修改流水线配置

编辑 templates/pipeline.yml

main: push: - services: - docker stages: # 添加或修改流水线步骤

注意:流水线中的 ${CNB_...} 变量会被 CNB 平台在运行时替换,生成脚本不会处理这些变量。

📝 模板说明

vscode.yml - 开发环境模板

  • __DEV_IMAGE__ 占位符会被替换为实际镜像地址
  • 配置 CPU、内存、服务等资源
  • 定义容器启动时的初始化脚本

pipeline.yml - 流水线模板

  • CNB 变量(${CNB_DOCKER_REGISTRY} 等)保持原样
  • 由 CNB 平台在运行时替换
  • 定义构建、测试、部署等流程

🔍 环境变量

本地生成时使用

  • CNB_DOCKER_REGISTRY - Docker 镜像仓库
  • CNB_REPO_SLUG_LOWERCASE - 项目标识符
  • CNB_BRANCH - 分支名称(可选,默认 main)

CNB 平台运行时使用

流水线中的变量由平台提供:

  • ${CNB_DOCKER_REGISTRY} - 镜像仓库
  • ${CNB_REPO_SLUG_LOWERCASE} - 项目标识符
  • ${CNB_BRANCH} - 分支名称
  • ${CNB_COMMIT_SHORT} - 短提交 ID

⚠️ 注意事项

  1. 模板变量

    • __DEV_IMAGE__ - 由生成脚本替换
    • ${CNB_...} - 由 CNB 平台替换
  2. 目录隔离

    • 此目录不会打包进镜像
    • 仅用于本地开发
  3. 生成输出

    • 生成的 cnb.yml 也不会打包进镜像
    • 需要单独上传到 CNB 平台

📚 相关文档

  • 镜像脚本:image-scripts/README.md
  • 项目脚本:setup/README-CLAUDE.md