This is a Heroku buildpack for Go inspired by
https://github.com/kr/heroku-buildpack-go but designed to use project and all
dependencies committed into the projects' go
directory.
- Your project must have a
go
directory that contains asrc
sub-directory. Thesrc
directory will be the project'sGOPATH
workspace containing the project's source files and the source files for all dependencies. - A
.goinstall
files that with one line of space-separated package names. This line will be passed as packages argument to thego install
command.
Given a the following project file layout:
.git
.gitignore
.goinstall
Procfile
go
src
myapp
main.go
The .gitignore
file should ignore items in the workspace bin
and pkg
directories as well as any embedded VCS directories.
--- .gitignore ---
# Go workspace
.bzr/
.hg/
bin/
pkg/
The .goinstall
file content would contain the project's single package on one line:
--- .goinstall ---
myapp
The Profile
would contain the heroku procecess type and command. See
https://devcenter.heroku.com/articles/procfile#declaring-process-types for
more information.
--- Profile ---
web: myapp
You would run the following command to create a heroku app that uses this buildpack:
$ heroku apps:create myapp --buildpack https://github.com/fuseelements/heroku-buildpack-go.git
To deploy the app to heroku:
$ git push heroku master
...
-----> Fetching custom git buildpack... done
-----> Go project app detected
-----> Installing Go 1.1.2... done
-----> Running: go install -tags heroku myapp
-----> Discovering process types
Procfile declares types -> web
-----> Compiled slug size: 1.2MB
-----> Launching... done, v4
http://myapp.herokuapp.com deployed to Heroku
This buildpack adds a heroku
build constraint, to enable
heroku-specific code. See the App Engine build constraints
article
for details.