使用 Docker 快速构建项目,无需签入供应商库

Quick Go project build with Docker without checking in vendor libraries

目前,我们在 src/vendor 中拥有所有出售的库,这使得 docker-compose build 非常快。尽管将出售的库添加到源代码管理有库未更新的缺点,并且还会严重污染拉取请求的差异。

是否有介于两者之间的方法,也许是缓存?

Is there a way in between, maybe with caching?

是的,好几个。但是不要打system/preferred方法。

像您已经在做的那样使用$GOPATH/src/MyProject/vendor

adding vendored libraries to source control has the disavantage of libraries not being updated...

这完全取决于您的团队对您的存储库的管理。如果每个人都忽视供应商,它就会变得陈旧。

就我个人而言,我养成了“每月第一天”检查并刷新所有依赖项的习惯,运行我们的测试套件,如果没有错误,请更新开发服务器上的 QA 集成测试并保留发布后注意错误日志。 godepgostatus 等工具极大地帮助您将 GOPATH 保持在最新状态,您可以快速更新供应商文件夹。

只需确保它是一个专门的提交,以便在出现问题时可以快速恢复。

also heavily polluting the diff of pull requests

首先,这只是一个流程任务。我对所有拉取请求强制执行变基并拒绝所有回购中的所有合并。这保持了非常干净的 git 历史;但是,更重要的是,变基会将您的本地提交移动到供应商更新之后。除非有人添加了相同的包,否则永远不会发生冲突。那个时候就简单了,拿最新的一个就搞定了。

听起来好像还有流程问题需要解决,而不是担心/供应商管理。