在Artifactory上运行内部Go注册表

需要Go注册表

自从八年前在Google成立以来,Go就已经成为当今开发人员和DevOps使用的最受欢迎的语言之一,以至于它被用来设计和编写Helm和Kubernetes。 该项目在2017年对6,000多名受访者进行的调查显示,有67%的开发人员使用Go进行编程。 他们中大多数人对Go的专业知识的排名高于对Javascript,Python,Java,C,Bash或C ++的专业知识,并且与其他任何语言相比,他们更喜欢Go编程。 但是,尽管如此流行和使用,但与Go软件包一起使用的设施却落后了。

Go生态系统中缺少的是标准化-没有用于依赖性管理的标准工具,也没有标准的软件包格式或兼容的注册表规范。 这意味着开发人员无法使用Go创建可复制的内部版本,这是一个很大的问题。 多年以来,诸如dep,godep,glide和govendor之类的工具进入了处理Go依赖管理的领域,但是没有一个为在内部Go注册表中管理不可变的Go软件包或为远程设置Go代理提供了可接受的解决方案。去包。 好消息是,Google最终通过添加对vgo的Go版本支持,一劳永逸地解决了该问题。

Vgo是针对Go提出的官方标准依赖项管理工具和注册表规范。 虽然尚未包含在官方的Go工具集中,但它准备成为随每个Go版本一起分发的标准依赖项管理器。

Artifactory Go注册中心和代理

Artifactory 5.11的最新版本增加了对与vgo兼容的Go注册表(和go代理)的支持,从而在使用Go开发时为社区提供了多种功能。 这里只是其中一些:

  • Artifactory中的本地存储库使您可以设置安全的私有Go注册中心,并根据项目或开发团队对软件包进行细粒度的访问控制。
  • Artifactory中的远程存储库是远程Go资源(例如GitHub项目)的缓存代理。 通过Artifactory访问go代理可以删除您对网络或GitHub的依赖,因为Go构建所需的所有依赖关系都缓存在Artifactory中,因此可以在本地使用。 这还消除了某些人从版本控制中更改或删除依赖项的风险,或者更糟的是,将更改强制推向远程Git标签,从而更改了应为不可变版本的内容,这会给从属项目带来很多混乱和不稳定。
  • 虚拟存储库聚集了本地和远程Go注册表,使您可以从单个URL访问构建所需的所有Go资源,从而隐藏了将本地和远程资源结合使用的复杂性。
  • 企业级功能
  • 多层安全性,可管理身份验证,访问控制和数据隐私
  • 支持大量的可扩展性,无论是在用户数量上还是在存储Go软件包的数量上
  • 高可用性,适用于极其坚固的安装
  • 通过多种存储库复制功能支持任何多站点拓扑

使用JFrog CLI和Vgo构建Go项目

JFrog的Go解决方案填补了vgo CLI当前存在的一些空白。 JFrog CLI包装了vgo并通过简单的命令添加了附加功能,例如:

  jfrog rt去构建 

  jfrog rt发布 

您可以在通过Artifactory解决依赖性的同时构建Go项目,然后将生成的Go程序包发布到Artifactory中安全,私有的Go注册表(即本地Go存储库)中。

你知道吗?
在JFrog,我们是Go的忠实信徒,JFrog CLI和JFrog Xray都是用Go编写的。

随着Go和vgo的发展,Artifactory也将随之发展

随着vgo的不断发展,JFrog Artifactory和JFrog CLI也将继续保持对Go开发社区的高水平支持。