gpt4 book ai didi

Heroku 部署错误 : Cannot detect buildpack

转载 作者:IT王子 更新时间:2023-10-29 02:11:16 25 4
gpt4 key购买 nike

我正在尝试将我的 Discord Bot 部署到 Heroku,并且我已经成功地将我的 Github 帐户链接到 Heroku。它可以成功找到我正在尝试部署的存储库,但是当我尝试手动部署时,它会给我错误:

 !     No default language could be detected for this app.

HINT: This occurs when Heroku cannot detect the buildpack to use for this application automatically.

See https://devcenter.heroku.com/articles/buildpacks

! Push failed

我的机器人是用 Heroku 支持的 Go 编写的。难道是我的代码有外部库?如果是这样,我如何在 Heroku 中添加对这些库的支持?提前谢谢你。

最佳答案

在 Heroku 上,项目是使用所谓的 buildpacks 编译/构建的.为使用不同语言的项目创建特定的构建包。对于 Go 项目,存在 heroku/go它知道如何获取、编译和构建 Go 项目,包括在构建过程中自动获取它们的依赖项。

构建包选择可以手动或自动进行。您看到您发布的错误是因为您没有手动设置任何构建包,并且自动检测失败。请参阅以下原因。

手动构建包选择

要手动选择,请下载 Heroku CLI , 并执行以下命令:

heroku buildpacks:set heroku/go

注意:如果您是第一次使用heroku cli,您可能需要使用heroku login 登录。此外,如果默认情况下未选择您的应用,您可以使用 -a--app 参数指定它,例如:

heroku buildpacks:set heroku.go -a yourappname

要查看选定的构建包,请执行 heroku buildpacks 命令。

自动构建包检测

仅仅因为一个项目正在使用 Go 语言,heroku/go buildpack 不会被自动选中。

实际检测是否应该使用 heroku/go 是由脚本 heroku-buildpack-go/bin/detect 完成的,检测逻辑为:

if test -f "${build}/Godeps/Godeps.json" || # godeps
test -f "${build}/vendor/vendor.json" || # govendor
test -f "${build}/glide.yaml" || # glide
(test -d "${build}/src" && test -n "$(find "${build}/src" -mindepth 2 -type f -name '*.go' | sed 1q)") # gb
then
echo Go
else
exit 1
fi

因此,如果您的项目中存在以下文件之一,那么基本上会检测到 Go 语言并自动选择 heroku/go buildpack:

  • Godeps/Godps.json;被 godep 使用
  • vendor/vendor.json;被 govendor 使用
  • glide.yaml;被 glide 使用
  • src/*/*/**/*.go;被 GB 使用

进一步阅读

关于使用 Go 和 Heroku 的官方文章:

Getting Started on Heroku with Go

Heroku Go Support

关于Heroku 部署错误 : Cannot detect buildpack,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46462019/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com