Heroku - 相同的 code/repo 从 GitHub 部署但不是从 Heroku CLI 部署(buildpack 识别问题)

Heroku - the same code/repo deploys from GitHub but not from Heroku CLI (buildpack identification problem)

我写了一个相当简单的 Python/Django 应用程序,想将它部署到 Heroku。

由于从第 1 天起就在 GIT 中跟踪项目,我的首选策略是使用 Heroku CLI 来部署它。我已经创建了所有必要的元文件(Procfile、requirements.txt、Pipfile 等)。我还将所有必要的库和设置添加到我的 settings.py 文件中(我们可以安全地假设一切都设置正确,因为项目最终已部署并正常工作)。

我已经将 Heroku CLI 更新到最新版本。它似乎在我的所有 "terminal" 客户端中都能正常工作:PowerShell、GitBash、Termius。

然而,当我尝试执行良好的 'ol "git push heroku master" 时,该过程已启动,但它失败了,因为它无法确定要使用的适当构建包。在 Heroku 设置中手动指示 buildpack 后,CLI 表示 buildpack 不兼容:

PS C:\Users\mkokot\Dev\project-master> git push heroku master
Enumerating objects: 29, done.
Counting objects: 100% (29/29), done.
Delta compression using up to 8 threads
Compressing objects: 100% (25/25), done.
Writing objects: 100% (29/29), 917.94 KiB | 114.74 MiB/s, done.
Total 29 (delta 12), reused 6 (delta 2)
remote: Compressing source files... done.
remote: Building source:
remote:
remote: -----> App not compatible with buildpack: https://buildpack-registry.s3.amazonaws.com/buildpacks/heroku/python.tgz
remote:        More info: https://devcenter.heroku.com/articles/buildpacks#detection-failure
remote:
remote:  !     Push failed
remote: Verifying deploy...
remote:
remote: !       Push rejected to myherokuapp.
remote:
To https://git.heroku.com/ciaplist.git
 ! [remote rejected] master -> master (pre-receive hook declined)
error: failed to push some refs to 'https://git.heroku.com/myherokuapp.git'

注意:我在上面的例子中更改了项目names/urls,我没有尝试将示例设置应用于此操作:)

回到 "how do you know you configured everything correctly" 问题:一旦我将我的策略从 GitHub 更改为部署,一切都很顺利,并且 buildpack 被识别并正确执行。但是,我觉得这种部署方式很麻烦。

问题:你知道为什么相同的代码可能被 GitHub 接受但被 Heroku CLI 拒绝吗?去哪里找errors/settings修改?我很想看到 "git push heroku master" 工作!

好的,其实很简单。

使用 CLI 部署到 Heroku 时,Heroku 工具带将始终尝试将本地存储库的 master 分支推送到 heroku master 存储库。我准备部署的代码在另一个分支中。

为了将 master 以外的分支推送到 Heroku,您需要使用:

git push heroku your_branch_name:master

更多详情:https://devcenter.heroku.com/articles/git#deploying-code

自五!