跳转到内容

goctl 命令参考

goctl 是 go-zero 的代码生成 CLI。本文列出所有命令及其参数。

Terminal window
goctl api new <service-name> # 创建新 API 项目脚手架
goctl api go --api <file> --dir <dir> # 从 .api 文件生成 Go 代码
goctl api validate --api <file> # 语法校验
goctl api format --dir <dir> # 格式化 .api 文件
goctl api doc --dir <dir> # 生成 Markdown 文档
参数默认值说明
--api.api 文件路径(必填)
--dir.输出目录
--stylegoZero文件命名风格
--home~/.goctl自定义模板目录
--remote指定远程模板仓库
--branch远程模板分支
--ideafalse机器可读输出(IDE 集成用)
Terminal window
goctl rpc new <service-name> # 创建新 RPC 项目脚手架
goctl rpc protoc <proto-file> ... # 从 .proto 生成 Go 代码
Terminal window
goctl rpc protoc user.proto \
--go_out=./pb \
--go-grpc_out=./pb \
--zrpc_out=. \
--style goZero
参数说明
--go_outprotoc-gen-go 输出目录
--go-grpc_outprotoc-gen-go-grpc 输出目录
--zrpc_outgo-zero RPC 骨架输出目录
--style文件命名风格
--home自定义模板目录
--idea机器可读输出
Terminal window
goctl model mysql ddl --src <file> --dir <dir> [--cache]
goctl model mysql datasource --url <dsn> --table <t> --dir <dir> [--cache]
goctl model pg datasource --url <dsn> --table <t> --dir <dir> [--cache]
goctl model mongo --type <T> --dir <dir> [--easy]

参数说明见 goctl model 参考

从 go-zero 项目生成多阶段 Dockerfile:

Terminal window
goctl docker --go main.go --port 8888
参数默认值说明
--gomain.go 入口文件路径
--port8080暴露端口
--version基础 Go 镜像版本
--home~/.goctl自定义模板目录
--tzAsia/Shanghai容器时区
--basescratch运行时基础镜像
Terminal window
goctl kube deploy \
--name user-api \
--namespace default \
--image myregistry/user-api:v1.0.0 \
--port 8888 \
-o user-api.yaml
参数默认值说明
--nameDeployment 名称
--namespacedefaultKubernetes 命名空间
--image容器镜像引用
--replicas3Deployment 副本数
--port容器监听端口
--minReplicas3HPA 最小实例数
--maxReplicas10HPA 最大实例数
--requestCpu500CPU request(m)
--requestMem512内存 request(Mi)
--limitCpu1000CPU limit(m)
--limitMem1024内存 limit(Mi)
--imagePullPolicyIfNotPresent镜像拉取策略
-o输出文件路径
--home~/.goctl自定义模板目录
Terminal window
goctl template init # 初始化默认模板到 ~/.goctl/
goctl template clean # 清空本地模板缓存
goctl template update # 更新模板到最新版本
goctl template revert --category api # 还原指定类别模板
Terminal window
goctl env check # 检查所有依赖工具
goctl env install # 自动安装缺失工具

goctl env check 会验证以下依赖:protoc、protoc-gen-go、protoc-gen-go-grpc、goctl-gen-go-rpc。

Terminal window
goctl upgrade # 升级 goctl 至最新版本
风格示例
goZero(默认)userhandler.go
go_zerouser_handler.go
GoZeroUserHandler.go

所有 goctl 子命令均支持以下全局参数:

参数说明
--home自定义模板目录,覆盖 ~/.goctl
--remoteGit 仓库 URL,用于远程模板
--branch远程模板的 Git 分支
--style生成文件的命名风格