我在Heroku上获得了一个Go API,我推送了一些代码;在我的procfile中我有以下
web: main
为了在Heroku方面启动Go内置二进制文件。当我用
构建它时go build cmd/main.go
它在我的项目根目录中生成一个二进制文件namned'main'并按预期工作但是在Heroku上我得到了
app[web.1]: bash: main: No such file or directory
Heroku上的构建过程似乎很好,它找到了我所有的依赖项并安装/编译它们。
答案 0 :(得分:6)
一旦我意识到这一点,这非常简单;
repo中的所有主包都被编译,二进制文件放在PATH中的/ app / bin目录中。 二进制文件以包含它们的目录命名。
答案 1 :(得分:0)
要注意的另一件事:与其他Go程序一样,main.go
中的代码必须属于程序包main
:
package main
func main() {
// your code here
}
恐怕一开始我完全忘记了这一点,这让我很困惑。