Uncloud CLI `uc version` 命令完全指南:查看版本与构建信息

发布时间:2026/11/5 10:56:41

Uncloud CLI `uc version` 命令完全指南:查看版本与构建信息 Uncloud CLIuc version命令完全指南查看版本与构建信息【免费下载链接】uncloudA lightweight tool for deploying and managing containerised applications across a network of Docker hosts. Bridging the gap between Docker and Kubernetes ✨项目地址: https://gitcode.com/GitHub_Trending/unc/unclouduc version是 Uncloud CLI 提供的一个零依赖子命令用于输出当前uc二进制文件的版本号与构建元数据Git 提交、构建日期、Go 版本、目标平台等。本文以官方 CLI 参考文档为主体结合仓库源码讲解该命令的三种输出模式人类可读、JSON、Go 模板与全局继承参数帮助你在排查故障、上报 issue 或编写自动化脚本时准确读取版本信息。命令概览与使用场景在 Uncloud 中uc是管理集群资源机器、服务、卷等的总入口参见 uc 命令参考uc version则是其中最轻量、最不依赖集群连接的子命令——它只读取二进制自身的构建信息不发起任何网络请求因此在任何环境下都能可靠执行。典型使用场景确认当前安装的 CLI 版本判断是否与uncloudd服务端版本匹配向社区或 issue 报告问题时附上完整的构建信息版本、Git commit、构建日期等在 CI/CD 或运维脚本中以-o json或 Go 模板提取版本号做版本比对与流程分支。命令语法uc version [flags]version子命令不接受位置参数源码中通过Args: cobra.NoArgs声明见 cmd/uc/version.go。输出选项-o, --output--output简写-o是uc version的核心参数支持三种取值取值说明默认空不传人类可读的 tab 对齐文本默认json输出 JSON 格式的完整构建信息—任意 Go 模板字符串按模板渲染字段如{{.Version}}—官方提示当你不确定模板可用哪些字段时先执行uc version -o json查看 JSON 输出字段名即模板可直接引用的属性名。人类可读输出默认不传-o时命令输出 ASCII 艺术字仓库 cmd/uc/art.txt 中嵌入的 uc logo、项目介绍与一行说明以及 tab 对齐的键值信息块大致形如_ _ ___ | | | |/ __| | |_| | (__ \__,_|\___| uc: Uncloud CLI tool for deploying apps and managing resources (https://uncloud.run) Version: 0.19.0 Git commit: abc1234 Git state: clean Build date: 2026-01-01T00:00:00Z Built by: goreleaser Go version: go1.24.1 Platform: linux/amd64这些字段由 internal/version/version.go 中的Info结构体定义并通过tabwriter对齐输出。humanVersion函数cmd/uc/version.go负责组装 ASCII 艺术与信息块。JSON 输出-o json使用encoding/json的MarshalIndent缩进两个空格输出结构化信息便于脚本解析$ uc version -o json { Version: 0.19.0, GitCommit: abc1234, GitState: clean, BuildDate: 2026-01-01T00:00:00Z, BuiltBy: goreleaser, GoVersion: go1.24.1, Platform: linux/amd64 }字段与含义对应关系如下JSON 字段含义Version语义化版本号未注入时默认为999.0.0-devGitCommit构建时的 Git 提交哈希GitState工作区状态clean或dirtyBuildDate构建时间RFC3339BuiltBy构建工具标识发布版通常为goreleaserGoVersion编译所用 Go 工具链版本Platform目标操作系统/架构如linux/amd64、darwin/arm64Go 模板输出-o传入任意 Go 模板字符串时命令用text/template渲染Info结构体实现见 cmd/uc/version.go 的templateVersion函数。常用示例# 只输出版本号 $ uc version -o {{.Version}} 0.19.0 # 组合多个字段 $ uc version -o uc {{.Version}} ({{.GitCommit}}, {{.Platform}}) uc 0.19.0 (abc1234, linux/amd64)注意模板支持 Gotext/template的全部能力管道、条件、循环等但如果模板解析或执行失败命令会返回错误并退出例如字段名拼写错误时。构建信息的底层来源ldflags 注入与默认值uc version展示的数据并非运行时探测所得而是在编译期通过-ldflags注入到包级变量中的见 .goreleaser.yaml 的builds.uc.ldflags-X github.com/psviderski/uncloud/internal/version.version{{.Version}} -X github.com/psviderski/uncloud/internal/version.commit{{.Commit}} -X github.com/psviderski/uncloud/internal/version.dirty{{.IsGitDirty}} -X github.com/psviderski/uncloud/internal/version.date{{.CommitDate}} -X github.com/psviderski/uncloud/internal/version.builtBygoreleaser这些值由 GoReleaser 在发布流程中替换同时internal/version/version.go 的GetInfo()还会借助github.com/caarlos0/go-version读取runtime/debug.BuildInfomodule 版本、Go 版本、平台等作为补充。注入值优先于运行时探测值例如GitCommit只有在 ldflags 注入了commit变量时才使用注入值。两个值得注意的细节开发版默认版本号若未通过 ldflags 注入如本地go buildVersion显示为999.0.0-dev以此明确标识非发布构建见String()函数Git 状态语义dirty变量接收的是 GoReleaser 的{{.IsGitDirty}}布尔字符串true映射为dirtyfalse映射为clean。由于version命令在 cmd/uc/main.go 中注册为根命令的子命令且不经过集群连接初始化逻辑它可以在未配置任何集群的情况下运行。继承自父命令的全局参数uc version会继承uc根命令的持久化标志定义于 cmd/uc/main.go 的PersistentFlags。这些参数对version命令的实际输出没有影响但了解它们有助于理解命令行整体行为--connect string Connect to a remote cluster machine without using the Uncloud configuration file. [$UNCLOUD_CONNECT] Format: [ssh://]userhost[:port], sshgo://userhost[:port], tcp://host:port, or unix:///path/to/uncloud.sock -c, --context string Name of the cluster context to use (default is the current context). [$UNCLOUD_CONTEXT] --uncloud-config string Path to the Uncloud configuration file. [$UNCLOUD_CONFIG] (default ~/.config/uncloud/config.yaml)三个参数均支持对应的环境变量覆盖UNCLOUD_CONNECT、UNCLOUD_CONTEXT、UNCLOUD_CONFIG环境变量的绑定逻辑在根命令的PersistentPreRunE中通过cli.BindEnvToFlag完成。需要说明的是--connect支持多种远程连接协议[ssh://]userhost[:port]系统 ssh、sshgo://userhost[:port]内置 Go SSH 客户端、tcp://host:port、unix:///path/to/uncloud.sock--uncloud-config默认指向~/.config/uncloud/config.yaml路径中的~会在初始化时由fs.ExpandHomeDir展开当未指定--connect且配置文件不存在时CLI 会自动回退到默认的 unix socket 路径machine.DefaultUncloudSockPath。与其他 CLI 工具的版本输出对比Uncloud 服务端守护进程uncloudd同样提供了版本输出能力二者共用internal/version包与同一套 ldflags 注入变量见 .goreleaser.yaml 中builds.uncloudd.ldflags与 cmd/uncloudd/version.go因此在排查客户端与服务端版本不匹配问题时可以用相同字段对齐比对两边输出。小结uc version零依赖、无需集群连接即可运行是排查环境与上报 issue 的第一手工具-o json提供结构化输出适合脚本解析Go 模板适合按需提取单个字段版本信息的准确性依赖编译期 ldflags 注入未注入时以999.0.0-dev标识开发构建命令完整实现可参考 cmd/uc/version.go 与 internal/version/version.go。【免费下载链接】uncloudA lightweight tool for deploying and managing containerised applications across a network of Docker hosts. Bridging the gap between Docker and Kubernetes ✨项目地址: https://gitcode.com/GitHub_Trending/unc/uncloud创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
延伸阅读

更多相关文章

2026/10/25 19:26:53

遇 Buzz 的 Git 仓库事件,AI Agent 调 TaoToken 的 Key

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/24 19:12:32

推理脚本跑 575M GLiFormer,结果汇总 LLM Key 来自 TaoToken

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/11/5 10:43:56

工业测温方案解析:ADS122U04与STM32F042K6的UART高精度RTD采集设计

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/11/5 10:43:56

STM32L031+ADS122U04:UART接口24位ADC实现PT100高精度温度采集

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/11/5 10:43:55

基于ADS122U04与MK24的HVAC高精度温度采集系统设计

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/11/5 10:38:55

Univer开源Web Office引擎:Canvas渲染与协同编辑实战解析

第一次看到Univer这个项目名字的时候,我下意识以为是哪个海外团队用“University”做的教育类产品。直到我翻完它的仓库和在线Demo,才发现自己差点错过一个好东西——这是一个把“在线电子表格、文档、幻灯片”全部做成开源引擎的Web Office项目&#xf…

2026/11/5 10:38:55

Foxmail数字签名与加密配置全指南:S/MIME证书实战落地

1. 邮件签名与加密不是“加个水印”或“点个锁图标”那么简单很多人第一次在Foxmail里找“签名”功能,点开设置就以为万事大吉——填上姓名、电话、公司logo,保存退出,邮件发出去带个固定落款,就觉得“搞定”。等真遇到客户问“你…

2026/11/5 10:38:55

LVS负载均衡优化:FWM标记与持久化服务实践

1. 为什么需要优化LVS调度?在企业级负载均衡场景中,Linux Virtual Server(LVS)作为四层负载均衡的经典解决方案,其性能表现直接影响着整个业务系统的稳定性。但在实际生产环境中,我们常常会遇到两个典型问题…

2026/11/4 12:38:23

面向复杂光照与角度的宠物面部识别鲁棒性增强策略

在智慧养宠时代,基于视觉的宠物身份识别技术正逐步从实验室走向家庭应用。然而,与配合度高的人类不同,宠物是典型的“非合作生物识别对象”——它们不会主动配合摄像头调整姿态,更无法控制光照环境。实际应用中,我们常…

2026/11/4 21:04:25

SSM电子书店源码全解析:结构、原理、部署与排错实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/11/5 0:02:07

多智能体协作系统架构设计与实践优化

1. 多智能体协作系统的时代背景2017年Transformer架构的诞生彻底改变了人工智能的发展轨迹。当行业还沉浸在单一大模型带来的性能突破时,Anthropic的研究团队已经将目光投向了更前沿的领域——如何让多个智能体通过协作产生超越单体能力的系统智能。这就像交响乐团中…

2026/11/5 0:02:07

大模型系统性入门实战指南:从原理到部署微调的全链路路线

提到大模型的系统性入门,我先说个结论:这事真不难,难的是资料太散、路线太多,今天这个框架明天那个工具,新人很容易在“收藏夹吃灰”和“教程看到一半放弃”之间反复横跳。市面上关于大模型的内容少说有几十万篇&#…

2026/11/5 0:02:07

鸿蒙文件系统沙箱机制解析与开发实践

1. 鸿蒙文件系统沙箱机制深度解析作为一名从Android转向鸿蒙开发的工程师,我深刻体会到文件系统访问是迁移过程中最先遇到的"拦路虎"。在Android上运行良好的文件读写代码,在鸿蒙真机环境却频频出现文件写入后神秘消失或直接抛出权限拒绝错误的…

2026/11/4 12:38:23

面向复杂光照与角度的宠物面部识别鲁棒性增强策略

在智慧养宠时代,基于视觉的宠物身份识别技术正逐步从实验室走向家庭应用。然而,与配合度高的人类不同,宠物是典型的“非合作生物识别对象”——它们不会主动配合摄像头调整姿态,更无法控制光照环境。实际应用中,我们常…

2026/11/4 21:04:25

SSM电子书店源码全解析:结构、原理、部署与排错实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
☎咨询二维码 ☎ ↑