【问题标题】:How to deploy Git LFS on Heroku?如何在 Heroku 上部署 Git LFS?
【发布时间】:2020-10-13 09:24:00
【问题描述】:

我在 Node.js 上完成了一个项目,已经推送到 GitHub,这个项目有一个大于 100MB 的视频,需要 Git LFS。 Git LFS 成功推入 GitHub 一点问题都没有。

这个项目的第二阶段是在 Heroku 中托管,这就是我卡住的地方。我都试过了:

heroku buildpacks:add https://github.com/BureauxLocaux/heroku-buildpack-git-lfs.git

和

heroku buildpacks:add (name of the app given by heroku)/heroku-buildpack-git-lfs

当它被推送时

git push heroku master --no-verify

我收到以下错误:

remote: -----> Git LFS app detected
remote: Env var BL_BUILDPACK_GIT_LFS_REPO is not set
remote:  !     Push rejected, failed to compile Git LFS app.
remote: 
remote:  !     Push failed
remote: Verifying deploy...
remote: 
remote: !   Push rejected to intense-journey-80070.
remote: 
To https://git.heroku.com/intense-journey-89070.git
 ! [remote rejected] master -> master (pre-receive hook declined)
error: failed to push some refs to 'https://git.heroku.com/intense-journey-89070.git'

我怎样才能做到这一点?

【问题讨论】:

    标签: node.js github heroku git-lfs


    【解决方案1】:

    基本上,您只需按照post 中的说明进行操作即可。需要说的是,注册GitHub应用时,需要填写的“Webhook URL”和“Homepage URL”的URL都是你使用heroku创建的URL(示例格式:https:// .herokuapp.com)。

    【讨论】:

      【解决方案2】:

      Heroku 不支持链接到大文件系统 (LFS) 的文件。

      因此,您需要转到 heroku 上的设置,将 configs vars 添加为键“HEROKU_BUILDPACK_GIT_LFS_REPO”以值“https://@github.com//repository.git”令牌是唯一的个人访问令牌。 您需要在 GitHub > settings> Developer Settings for Heroku 中注册以访问您的 LFS 文件,并在 buildpacks 中链接以安装 LFS “https://github.com/raxod502/heroku-buildpack-git-lfs.git” .

      最后,点击部署部分中的部署按钮,您的项目就完成了,可供人们通过互联网访问。

      【讨论】:

        【解决方案3】:

        你说

        heroku buildpacks:add (name of the app given by heroku)/heroku-buildpack-git-lfs
        

        但您不应在此处使用 您的 应用名称。我猜你想用this buildpack?在这种情况下,你应该从字面上做

        heroku buildpacks:add https://github.com/BureauxLocaux/heroku-buildpack-git-lfs.git
        

        您还有一条错误消息说

        Env var BL_BUILDPACK_GIT_LFS_REPO is not set
        

        buildpack 需要一些额外的配置,如 Heroku 上的 buildpack 页面中所述,您似乎没有这样做:

        为您的应用设置以下环境变量:

        • BL_BUILDPACK_GIT_LFS_REPO 指向要从中下载 Git LFS 资产的存储库的克隆 URL。这应该包括非交互克隆所需的任何用户名、密码或个人访问令牌。有关语法的详细信息,请参阅here。它必须类似于git@github.com:BureauxLocaux/my-repo
        • BL_BUILDPACK_GIT_LFS_SSH_PRIVATE_KEY:用base64 -w 0 以base64 编码的私钥。您可以使用heroku config:set --app preprod-bureauxlocaux "BL_BUILDPACK_GIT_LFS_SSH_PRIVATE_KEY=$(cat ~/.ssh/heroku_deploy_lfs | base64 -w 0)" 进行设置。

        私人 SSH 密钥应受到近乎偏执的保护,因此请确保使用仅用于部署此存储库的专用 SSH 密钥。为该部署密钥提供尽可能低的权限。

        【讨论】:

        • 嗨,克里斯,感谢您的回复,我试过了,但仍然遇到同样的错误。还关注了heroku网站上的内容。仍然没有运气。此外,编辑了问题以使其更清楚。请耐心等待我是新手。
        • @Ran,该消息应该比“预接收挂钩被拒绝”更多。请编辑您的问题并添加之前的内容。另外,您尝试通过 LFS 注入多大的有效负载?
        • 我已经更新了我的问题中的错误信息,有效载荷是 287MB 的图像和一个 187MB 的大视频,尤其是视频。
        • @Ran,你还没有配置 buildpack。我更新了我的答案,但请记住阅读您正在使用的工具的文档。这就在自述文件中。 (而且我回答的第一部分仍然相关。添加一个其 URL 指向您正在修改的应用程序的 buildpack 没有意义。)
        猜你喜欢
        • 1970-01-01
        • 2013-09-23
        • 2012-10-25
        • 1970-01-01
        • 2013-12-09
        • 1970-01-01
        • 1970-01-01
        • 2021-03-13
        • 2015-05-15
        相关资源
        最近更新 更多