使用goswagger生成swagger.yaml时遇构建缓存权限错误求助
解决goswagger生成spec时GOCACHE权限错误问题
问题原因
使用Docker版goswagger时,容器内的Go工具未获取到本地的GOCACHE环境变量,默认尝试写入根目录下的/.cache/go-build,但当前非root用户无该目录写入权限,导致报错。
解决方案
修改你的swagger别名,将本地的GOCACHE环境变量传递到Docker容器中:
alias swagger='docker run --rm -it --user $(id -u):$(id -g) -e GOPATH=$(go env GOPATH):/go -e GOCACHE=$(go env GOCACHE) -v $HOME:$HOME -w $(pwd) quay.io/goswagger/swagger'
验证操作
重新执行生成命令:
swagger generate spec -o ./swagger.yaml
补充说明
如果更倾向于禁用缓存或使用临时目录,也可以直接在别名中指定:
- 禁用缓存:将
-e GOCACHE=$(go env GOCACHE)替换为-e GOCACHE=off - 使用临时目录:替换为
-e GOCACHE=/tmp
内容的提问来源于stack exchange,提问作者micah
相关产品推荐
相关产品推荐

