一些改进方向

新思路

参考 对需求的重新思考

构建速度

go 的依赖管理机制让 go 项目在编译时需要大量的访问 GitHub/gopkg/golang.org 等网站,这对于国内开发者来说,非常的不友好。

当我们在本地使用 go build 构建时,即使一次 go build 失败, 我们可以比较方便的重新来过,之前下载的依赖在之后的 go build 中可以继续使用。

而在 go2pod 目前的设计中,每次构建都几乎是从 0 开始, 在网络条件不好的情况下,构建速度会比较慢,甚至会导致构建失败。

  • 不知道是否可以缓存 $GOPATH/pkg/mod 等目录?

使用多阶段构建

目前代码中已经对 docker 是否支持 multi-stage build 做了检测, 但是生成 dockerfile 时没有参考这个参数,之后可以对此进行改进。

已知的好处有:

  • 减少镜像大小
  • 排除构建时环境变量对运行时容器的影响