在Artifactory

时间:2018-03-05 10:45:41

标签: node.js github sass artifactory

如何在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回购的内容,但这似乎是我的解决方案,我担心。

1 个答案:

答案 0 :(得分:5)

我整个上午都在为此而战,我终于开始工作了。根本原因是,默认情况下,Artifactory尝试对工件执行HTTP HEAD请求,这对GitHub CDN S3存储桶不起作用:请参阅此问题:RTFACT-11923

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

我已成功设置了具有以下配置的镜像:

  1. 为GitHub版本创建自定义布局:

    [orgPath]/releases/download/[baseRev]/[module].[ext]
    
  2. 使用" generic"创建一个新的远程存储库。类型。

  3. 将新存储库的网址设置为https://github.com/
  4. 将存储库布局和远程存储库布局设置为为GitHub创建的自定义布局
  5. 取消选中"列出远程文件夹项目"
  6. 在" Advanced"选项卡,在"其他"部分,检查"绕过HEAD请求"
  7. 保存存储库后,请尝试以下操作:

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

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

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