Search code examples
herokugobuildpack

Heroku Golang - command 'main' not found


I got a Go API up on Heroku to which I push some code; in my procfile I have the following

web: main

In order to launch the Go built binary on Heroku's side. When I build it on my side with

go build cmd/main.go

It produces a binary file namned 'main' in my project root and works as expected but on Heroku I get

app[web.1]: bash: main: No such file or directory

The build process on Heroku seems fine, it finds all my dependencies and installs/compiles it all.


Solution

  • This was super simple once I realised this;

    All main packages in the repo are compiled and binaries placed in the /app/bin directory, which is in the PATH. Binaries are named after the directory that contains them.