如何在Artifactory中创建github镜像。
我们需要安装node-sass。我们有一个远程npm存储库,该存储库下载node-sass,但最后它需要一些来自github的binding.node文件。在这里,构建由于代理而失败。

我们为https://npm.taobao.org/mirrors/node-sass创建了一个远程存储库,并告诉我们的构建检查远程仓库中是否有node-sass:

SASS_BINARY_SITE=https://xx/artifactory/node-sass/

这很好。但是现在我们正在镜像一面镜子。我们想立即镜像github版本,但这不起作用:
我们尝试了https://github.com/sass/node-sass/releases/https://github.com/sass/node-sass/releases/download/,但是都没有用。

我读到有关VCS repo 的信息,但恐怕这确实是我们的解决方案。

最佳答案

我花了整个上午与这个问题作斗争,终于使它工作了。根本原因是,默认情况下,Artifactory尝试在 Artifactory 上执行HTTP HEAD请求,该请求在GitHub CDN S3存储桶上不起作用:请参见此问题:RTFACT-11923

从Artifactory 5.5.2开始,“通用”存储库的高级配置中现在有一个选项可以忽略HTTP HEAD请求。如果选中此选项,则通用存储库可以镜像GitHub版本。

我已经使用以下配置成功设置了镜像:

  • 为GitHub版本创建自定义布局:
    [orgPath]/releases/download/[baseRev]/[module].[ext]
    
  • 使用“通用”类型创建一个新的远程存储库。
  • 将新存储库的URL设置为https://github.com/
  • 将存储库布局和远程存储库布局设置为为GitHub创建的自定义布局
  • 取消选中“列出远程文件夹项目”
  • 在“其他”部分下的“高级”选项卡上,选中“绕过HEAD请求”

  • 保存存储库后,请尝试以下操作:

    http://artifactory.local/artifactory/github-releases/sass/node-sass/releases/download/v4.9.0/win32-ia32-11_binding.node

    哪个应下载该 Artifactory 并将其缓存以备将来使用。然后,您可以将SASS_BINARY_SITE设置为“http://artifactory.local/artifactory/github-releases/sass/node-sass/releases/download”,这将强制npm install使用Artifactory中的缓存/代理版本。

    从理论上讲,这可以在GitHub上缓存所有发行版,但是我还没有尝试过其他任何版本。

    关于node.js - 在Artifactory中创建Github镜像,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/49108640/

    10-16 09:19