【问题标题】:Create Github mirror in Artifactory在 Artifactory 中创建 Github 镜像
【发布时间】:2018-08-13 00:01:12
【问题描述】:

如何在 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 存储库的信息,但恐怕这确实是我们的解决方案。

【问题讨论】:

    标签: node.js github sass artifactory


    【解决方案1】:

    我花了一上午的时间来解决这个问题,我终于让它工作了。根本原因是,默认情况下,Artifactory 尝试对工件执行 HTTP HEAD 请求,这在 GitHub CDN S3 存储桶上不起作用:请参阅此问题:RTFACT-11923

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

    我已经成功设置了一个镜像,配置如下:

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

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

    3. 将新存储库的 URL 设置为 https://github.com/
    4. 将仓库布局和远程仓库布局设置为为 GitHub 创建的自定义布局
    5. 取消选中“列出远程文件夹项目”
    6. 在“高级”选项卡的“其他”部分下,选中“绕过 HEAD 请求”

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

    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 上的任何版本,但我还没有尝试过其他任何东西。

    【讨论】:

    • 你是个救命的人,一直用这个把我的头撞到墙上。
    • 谢谢!救了我无数的头痛。关于示例 URL 的快速注释,/artifactory 拼写错误,如果有人像我一样懒惰并且要复制粘贴它,他们会得到 404 :)
    • 我有来自 GitHub 的 url github.com/getsentry/sentry-cli/releases/download/1.55.0/… - 如何查看布局工件路径模式 - [org]/releases/download/[baseRev]/[module] - 不起作用?
    • problem is in not selection in 在“高级”选项卡的“其他”部分下,选中“绕过 HEAD 请求”...
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-28
    • 2023-03-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多