【发布时间】:2017-11-17 22:28:15
【问题描述】:
我在让它检测应用程序二进制文件时遇到了一些麻烦。
例如,我的项目名为 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 可以工作,但不是实际的远程设置。
【问题讨论】:
-
这个二进制文件存在于你本地的
$GOPAHT/bin中,但很可能一个新的构建/安装过程不会产生,所以它不会在heroku 上找到。如果您需要帮助,我们需要知道您部署的 repo 以及您的 heroku 配置。 -
@icza 这是我用来学习 Go 的最低限度的代码库。这里有更多信息:gist.github.com/najmsheikh/a46b7de388d1a798aa8b7c3dfa1bbdba
-
您的
glide.yaml中的包不正确。将GoServer重命名为goserver(小写)并将glide.yaml第一行中的包更改为:package: goserver。然后在Procfile中也使用goserver。 -
解决了!尽管我确实必须保留大写字母。您可以在下面提交答案,以便获得信用。谢谢!