Heroku找不到Go应用程序

时间:2017-11-17 22:28:15

标签: heroku go

我在检测应用程序二进制文件时遇到了一些麻烦。

例如,我的项目名为GoServer,位于$GOPATH/src/GoServer,其二进制文件(通过在项目目录中运行go install创建)位于$GOPATH/bin/

现在,如果我尝试使用go run main.go在本地运行实例,它就可以了。如果我使用Heroku Local工具包(heroku local)在本地运行它,它也可以正常工作。但当它推送到Heroku的远程仓库并从那里打开页面时,它会崩溃。在日志中,它表示无法找到GoServer(bash: GoServer: command not found)。

我该如何解决这个问题?我见过的大多数类似问题的线程都是指配置错误的GOPATH,但是自从Heroku Local工作以来我似乎很好,但实际的远程设置并没有。

1 个答案:

答案 0 :(得分:2)

glide.yaml中的包不正确,请将其更改为您的代码所在的包,即GoServer。这是通过滑行安装的软件包。由于这与您的代码的包(文件夹)不匹配,GoServer没有安装,并且在heroku上不可用作可执行文件。当您(或您的IDE)编译和安装GoServer并将可执行文件放入$GOPATH/bin时,它在本地工作,因此可以在本地运行。

所以glide.yaml中的第一行应该是:

package: GoServer