heroku-buildpack-go

by thanhliem89dn

GitHub Readme.md

Heroku Buildpack: Go

This is a Heroku buildpack for Go.

Getting Started

Follow the guide at
http://mmcgrana.github.com/2012/09/getting-started-with-go-on-heroku.html.

There's also a hello world sample app at
https://github.com/kr/go-heroku-example.

Example

$ ls -A1
./.git
./.godir
./Procfile
./web.go

$ heroku create -b https://github.com/kr/heroku-buildpack-go.git
...

$ git push heroku master
...
-----> Fetching custom git buildpack... done
-----> Go app detected
-----> Installing Go 1.0.3... done
       Installing Virtualenv... done
       Installing Mercurial... done
       Installing Bazaar... done
-----> Running: go get -tags heroku ./...
-----> Discovering process types
       Procfile declares types -> web
-----> Compiled slug size: 1.0MB
-----> Launching... done, v5
       http://pure-sunrise-3607.herokuapp.com deployed to Heroku

The buildpack will detect your repository as Go if it
contains a .go file.

The buildpack adds a heroku build constraint,
to enable heroku-specific code. See the App Engine build constraints article
for more.

Hacking on this Buildpack

To change this buildpack, fork it on GitHub. Push
changes to your fork, then create a test app with
--buildpack YOUR_GITHUB_GIT_URL and push to it. If you
already have an existing app you may use heroku config:add
BUILDPACK_URL=YOUR_GITHUB_GIT_URL
instead of --buildpack.

.godir and Godeps

Early versions of this buildpack required users to
create a .godir file in the root of the project,
containing the application name in order to build the
project. While using a .godir file is still supported,
it has been deprecated in favor of using
godep in your project to
manage dependencies, and including the generated Godep
directory in your git repository.

Using with cgo

This buildpack supports building with C dependencies via
cgo. You can set config vars to specify
CGO flags to, e.g., specify paths for vendored dependencies. E.g., to
build gopgsqldriver, add
the config var CGO_CFLAGS with the value
-I/app/code/vendor/include/postgresql and include the relevant
Postgres header files in vendor/include/postgresql/ in your app.