如何限制/停止golangs去工具上网

问题描述 投票:2回答:1

我们最近把Golang带到了我一般使用的公司,但是我们在推出时遇到了麻烦,因为Go可以使用go get命令从互联网上获取包。通常,当我们推出Java和Python时,我们能够限制开发人员从中将内容指向内部工具的位置。

因此,使用Python,我们可以通过改变pip命令从内部工件中取出来改变它们的位置,使用Java,我们可以改变它们的settings.xml和pom.xml以指向我们的内部包。

我知道在开发期间,您可以获取并将依赖项提取到本地,然后将它们编译为独立的二进制文件。我正在寻找的是阻止人们走出开放式互联网的一些机制。

Go中是否存在类似的内容?我可以阻止人们上网和go get的包裹吗?

任何帮助将不胜感激。

go
1个回答
3
投票

这取决于您对“推出”的定义,但通常有三个阶段:

  1. 开发 - 此时除了将开发机器置于限制性代理或类似技术措施之外,您无法阻止任意go get调用。
  2. 部署 - 由于Go程序可以(应该)部署为单个二进制文件,因此在部署期间根本不使用go get
  3. 构建部署工件 - 这可能是您的问题:

通常的方法是在构建Go程序时不获取依赖关系。相反,在开发期间获取依赖项,并使用vendoring作为源树的一部分,例如使用dep工具。

此时,构建步骤不再需要获取任何依赖项。现在允许选择哪些依赖项成为过程其余部分的一部分,例如代码审查。

© www.soinside.com 2019 - 2024. All rights reserved.