Go 使用Docker快速生成项目,无需签入供应商库

Go 使用Docker快速生成项目,无需签入供应商库,go,docker,docker-compose,Go,Docker,Docker Compose,目前,我们在src/vendor中拥有所有供应商库,这使得docker compose build相当快。虽然将供应商库添加到源代码管理中有一个缺点,即库不会被更新,并且会严重污染拉取请求的差异 在这两者之间有没有一种方法,也许是缓存 在这两者之间有没有一种方法,也许是缓存 是的,好几个。但不要反对系统/首选方法 使用$GOPATH/src/MyProject/vendor就像您已经在做的那样 将供应商库添加到源代码管理中具有不更新库的缺点 这一切都取决于你的团队对回购的管理。如果每个人都忽略了

目前,我们在
src/vendor
中拥有所有供应商库,这使得
docker compose build
相当快。虽然将供应商库添加到源代码管理中有一个缺点,即库不会被更新,并且会严重污染拉取请求的差异

在这两者之间有没有一种方法,也许是缓存

在这两者之间有没有一种方法,也许是缓存

是的,好几个。但不要反对系统/首选方法

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

将供应商库添加到源代码管理中具有不更新库的缺点

这一切都取决于你的团队对回购的管理。如果每个人都忽略了供应商,那么它就会过时

就我个人而言,我养成了“每月1日”的习惯,检查并刷新所有依赖项,运行我们的测试套件,如果没有错误,更新开发服务器上的QA集成测试,并在发布后关注错误日志。像
godep
gostatus
这样的工具极大地帮助您在chrcn中保存最新的GOPATH,您可以快速更新供应商文件夹

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

还严重污染了拉请求的差异

首先,这只是一个过程任务。我对所有拉取请求强制重定基址,并拒绝所有回购中的所有合并。这保持了一个非常干净的git历史记录;但是,更重要的是,重定基址会将本地提交移动到供应商更新之后。不应该发生冲突,除非有人添加了相同的包。在这一点上很容易,只需采取最新的一个和完成

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