不打开融合云应用中心也能部署?用 licloud-cli 把融合云发布流程搬到终端
一句话摘要: 把“登录租户 → 找流水线 → 触发构建 → 选制品 → 发布应用 → 查状态”这条应用中心流程,收敛成
licloud-cli的几条命令;该人工确认的地方保留确认,该页面配置的地方不强行自动化。
如果你还不熟悉如何使用融合云应用中心完成应用部署,可以先阅读:融合云应用中心通用部署流程。
本文对应的 CLI 版本文档:融合云应用中心CLI部署流程。
每次发布,为什么总要在应用中心里点 一圈
一个服务第一次部署到融合云,真正花时间的通常不是写 Dockerfile,而是把一串页面操作完整走完:
- 先找到正确租户,再找到正确代码库;
- 仓库下可能有多条流水线,不能随便挑一条;
- 构建成功了,还要确认镜像进入了正确制品库;
- 发布时要选对应用、组件、环境和镜像;
- 环境变量、端口、域名、探针又散落在不同配置页面;
- 失败后还要回头看构建日志、发布状态和组件实例。
这些步骤并不神秘,但它们有一个共同特点:信息多、重复高、选错代价大。
所以我最近把这条流程换了一个入口:不再把“应用中心页面”当成唯一入口,而是先用 licloud-cli licloud-agent 把能命令化的部分跑起来。
一句话说清 licloud-agent 是什么
licloud-agent 不是一个本地 Codex,也不是一个普通的 REST 命令集合。它更像是融合云已经部署好的云端 CI/CD Agent 客户端:你在终端里用自然语言描述意图,CLI 把请求、租户、会话和认证信息交给融合云 Agent,再由云端 Agent 调用流水线、制品、应用和发布能力。
PowerShell
↓
licloud-cli
↓
融合云云端 CICD Agent
↓
构建流水线 / 制品库 / 应用 / 组件 / 发布服务
它和自己写一个 chatbot Agent 的思路是相似的:都有自然语言、会话、工具调用和多步执行;区别在于,licloud-agent 的 Prompt、工具和 Agent Loop 由平台维护,你通过 CLI 使用它,不需要自己实现一套 CI/CD 工具注册系统。
先装好 CLI,再开始部署
安装入口:
安装后检查:
licloud-cli version
licloud-cli --help
首次登录融合云:
licloud-cli auth login
检查登录状态并查看租户:
licloud-cli auth status
licloud-cli tenant list
记住目标租户的 tenantId。后续 licloud-agent 请求都要带上:
--tenant-id <tenant_id>
PowerShell 里要把自然语言整体 放在双引号中。反引号
`只用来换行,不要用它包住查询内容。
一次部署到底怎么跑
第一步:先确认代码和 Dockerfile
在项目目录检查 Git 状态:
git remote -v
git status
git log --oneline -10
融合云 Agent 查询流水线时,建议使用 HTTPS Git 地址,并确认以 .git 结尾:
SSH: git@gitlab.chehejia.com:group/repo.git
HTTPS: https://gitlab.chehejia.com/group/repo.git
Dockerfile 至少确认三件事:
- 服务监听
0.0.0.0,不能只监听127.0.0.1; - 容器端口和应用实际监听端口一致;
CMD或ENTRYPOINT指向真实启动命令。
没有合适的 Dockerfile 时,可以让 Agent 帮忙生成或更新,但入口文件、端口和启动命令仍要自己确认。让 AI 生成 Dockerfile 不等于免掉构建前检查。
第二步:先查流水线,别默认选最新
licloud-cli licloud-agent "查询仓库 https://gitlab.chehejia.com/group/repo.git 的构建工程和关联流水线" --tenant-id <tenant_id>
一个仓库存在多条流水线很常见。不要默认选择第一条或最新一条,优先按下面顺序判断:
- 项目已有
.robot/build_config.yaml记录的流水线; - 流水线的
artifactKey与目标组件绑定的artifactKey一致; - 仓库只有一条流水线;
- 无法判断时,让人根据流水线绑定组件选择。
需要进一步确认时:
licloud-cli licloud-agent `
"查询流水线 <pipeline_name> 的详细信息,包括构建阶段、Dockerfile 和分支" `
--tenant-id <tenant_id>
这一步看起来慢一点,但比“构建成功后才发现制品不能发布”省时间得多。
第三步:没有流水线就创建,已有的优先复用
licloud-cli licloud-agent `
"创建流水线,语言是 <language>,仓库 https://gitlab.chehejia.com/group/repo.git,分支 <branch>,使用源码中的 Dockerfile,路径是 ./Dockerfile,并将构建镜像存储到制品库" `
--tenant-id <tenant_id> `
--request-id <uuid>
如果只是 Dockerfile 需要调整,优先更新现有流水线,不要重复创建:
licloud-cli licloud-agent `
"更新流水线 <pipeline_name> 的 Dockerfile 内容为:<dockerfile_content>" `
--tenant-id <tenant_id> `
--request-id <uuid>
--request-id 是有副作用操作的幂等键:网络超时时,重试必须使用同一个值;用户主动发起新一轮操作时,才生成新的值。
第四步:触发构建并查询状态
建议使用已经确认过的 commit:
licloud-cli licloud-agent `
"运行流水线 <pipeline_name>,使用 <commit_id> commit" `
--tenant-id <tenant_id> `
--session-id <session_id> `
--request-id <uuid>
继续查询构建状态:
licloud-cli licloud-agent `
"查询构建状态" `
--tenant-id <tenant_id> `
--session-id <session_id>
构建期间不要反复触发同一流水线。构建失败时,直接把问题交给 Agent 诊断:
licloud-cli licloud-agent `
"诊断构建失败原因,并给出 Dockerfile 或流水线修复建议" `
--tenant-id <tenant_id> `
--session-id <session_id>
第五步:发布应用和组件
构建成功后,发布到可用的非管控环境:
licloud-cli licloud-agent `
"把刚才构建的镜像发布到 <environment> 环境,应用名为 <app_name>,组件名为 <component_name>" `
--tenant-id <tenant_id> `
--session-id <session_id> `
--request-id <uuid>
如 果应用或组件不存在,Agent 可以按上下文自动创建。发布流程通常会串起:
- 选择构建制品;
- 创建应用和组件;
- 创建发布泳道;
- 配置端口运维特征;
- 写入环境变量运维特征;
- 触发 Kubernetes 发布。
第六步:环境变量不要塞进 Dockerfile
运行时变量建议通过 --env-vars 传入:
licloud-cli licloud-agent `
"把刚才构建的镜像发布到 <environment> 环境" `
--tenant-id <tenant_id> `
--session-id <session_id> `
--env-vars '[{"name":"APP_ENV","value":"test"},{"name":"PORT","value":"8080"}]' `
--request-id <uuid>
