根据go-zero的教学文档,在服务部署这一节 jenkins的Pipeline script有一段: sh '/usr/local/bin/goctl docker -go service/${JOB_NAME}/${type}/${JOB_NAME}.go' windows系统下,改写为bat "goctl docker -go service/${JOB_NAME}/${JOB_NAME}.go" 生成的Dockerfile中第15行: RUN go build -ldflags="-s -w" -o /app/user service/user/service/user/user.go 路径有问题,导致后面的脚本执行出错。 正确的路径应该是service/user/user.go 不清楚是不是goctl docker命令的Bug?
Q
[zeromicro/go-zero]服务部署时,jenkins的Pipeline script中goctl docker生成的Dockerfile内容有问题
1
A
回答
9
@351423113 这个并非goctl生成错误,你应该没有按照文档流程来吧,我看你的服务
service/user/service/user/user.go
并没有按照文档中的目录结构来,在文档中的目录结构有api
|rpc
区分的,因此你的服务会找不到$type
6
@anqiansong 嗯,是的,我的目录结构没有api,所以我改写为bat "goctl docker -go service/${JOB_NAME}/${JOB_NAME}.go" 去掉了${type}。问下,目录结构必须要有api|rpc,不能自定义吗?goctl的代码里好像没有对api|rpc做硬编码吧?
7
不用必须有api|rpc,这里根据自己服务目录灵活配置就行了,文档那个因此是没问题的
7
文档是整体流程,如果你的目录结构跟文档不一致,还需根据自己的业务做写适配哈