🥳 欢迎关注我的其他项目:
| 项目 | 简介 |
|---|---|
| images | 🧰 提供CNB基础开发构建环境镜像,通过构建按钮指定构建,优雅且舒服 |
| qifei | 🛫 快速拉起一个基础环境,直接起飞。 |
| awesome-cnb | 🤩 记录CNB中那些优秀的仓库 |
| hubproxy | 🦄 零帧起手,一键启动,提供 Docker 镜像加速、GitHub 加速、下载离线镜像等功能 |
| fileUpDown | 📦 临时文件中转站,像快递站那样,临时存取 |
| cnb-manager | 🍉 cnb管理器,一个uTools插件。 |
| start-custom-environment | 🎭 基于云原生构建启动自定义云原生开发环境 |
它会先检查当前仓库是否已有活跃环境:
jumpUrl--interval 后按周期执行--dry-runjumpUrl,失败时自动按规则兜底拼接SIGINT/SIGTERMdry-run,调用启动接口拉起环境jumpUrl./ckr \
--token <CNB_TOKEN> \
--repo <org/repo> \
[--branch main] \
[--interval 10m] \
[--timeout 20s] \
[--base-url https://api.cnb.cool/] \
[--dry-run]
--token:CNB 访问令牌(必填)--repo:仓库路径,格式 org/repo(必填)--branch:启动分支,默认 main--interval:巡检周期,如 30s、5m,为空表示只执行一次--timeout:单次执行超时,默认 20s--base-url:CNB API 地址,默认 https://api.cnb.cool/--dry-run:只检查,不执行启动同名参数均可通过环境变量传入:
CNB_TOKEN / PLUGIN_TOKEN / PLUGIN_CNB_TOKENCNB_REPO_SLUG / PLUGIN_REPO / PLUGIN_REPO_PATHCNB_BRANCH / PLUGIN_BRANCHCNB_BASE_URL / PLUGIN_BASE_URLCNB_INTERVAL / PLUGIN_INTERVALCNB_TIMEOUT / PLUGIN_TIMEOUTCNB_DRY_RUN / PLUGIN_DRY_RUN优先级:命令行参数 > 环境变量 > 默认值。
本工具通过 CNB OpenAPI(HTTPS)访问工作空间相关接口。
HTTPSAuthorization: <token>Accept: application/vnd.cnb.api+json(由 SDK 处理)主要接口:
GET /workspace/listPOST /{repo}/-/workspace/startGET /{repo}/-/workspace/detail/{sn}建议最小权限:
account-engage:rrepo-cnb-trigger:rw在以下场景会输出 jumpUrl:
输出策略:
jumpUrlhttps://cnb.cool/{repo}/-/workspace/jump?pipelineId={pipelineId}
其中 pipelineId 默认按 {sn}-001 规则生成(若 sn 已带三位数字后缀则直接使用)。
go build -o ckr .
# 一次性执行
./ckr --token "$CNB_TOKEN" --repo "znb/cnb-keep-running"
# 仅检查
./ckr --token "$CNB_TOKEN" --repo "znb/cnb-keep-running" --dry-run
# 每 10 分钟检查一次
./ckr --token "$CNB_TOKEN" --repo "znb/cnb-keep-running" --interval 10m
如果希望它在固定时间自动执行,可使用 CNB 的 crontab 触发方式:
# 此定时任务配置在 main 分支下
# 需要把对应权限的token传递进去,默认检查当前仓库的main分支
main:
"crontab: */9 * * * *":
- imports:
- https://cnb.cool/xxx/env/-/blob/main/env.yaml
stages:
- name: ckr
image: docker.cnb.cool/znb/ckr
settings:
token: "${CNB_ERYAJF_TOKEN}"
0:执行成功1:配置错误(缺少必填参数、格式非法等)2:运行时错误(接口调用失败等)