https://github.com/github/buildstep
Buildstep uses Docker and Buildpacks to build applications like Heroku
https://github.com/github/buildstep
Last synced: 5 months ago
JSON representation
Buildstep uses Docker and Buildpacks to build applications like Heroku
- Host: GitHub
- URL: https://github.com/github/buildstep
- Owner: github
- License: mit
- Archived: true
- Fork: true (progrium/buildstep)
- Created: 2013-08-19T01:54:00.000Z (over 12 years ago)
- Default Branch: master
- Last Pushed: 2013-08-16T23:22:37.000Z (over 12 years ago)
- Last Synced: 2024-09-29T00:21:26.371Z (over 1 year ago)
- Language: Shell
- Homepage:
- Size: 203 KB
- Stars: 12
- Watchers: 24
- Forks: 9
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Buildstep
Heroku-style application builds using Docker and Buildpacks. Used by [Dokku](https://github.com/progrium/dokku) to make a mini-Heroku.
## Requirements
* Docker
* Git
## Supported Buildpacks
Buildpacks should generally just work, but many of them make assumptions about their environment. So Buildstep has a list of officially supported buildpacks that are built-in and ready to be used.
* [Ruby](https://github.com/heroku/heroku-buildpack-ruby)
* [Node.js](https://github.com/heroku/heroku-buildpack-nodejs)
* [Java](https://github.com/heroku/heroku-buildpack-java)
* [Play!](https://github.com/heroku/heroku-buildpack-play)
* [Python](https://github.com/heroku/heroku-buildpack-python)
* [PHP](https://github.com/heroku/heroku-buildpack-php.git)
* [Clojure](https://github.com/heroku/heroku-buildpack-clojure.git)
* [Go](https://github.com/kr/heroku-buildpack-go.git)
* [Dart](https://github.com/igrigorik/heroku-buildpack-dart.git)
## Building Buildstep
The buildstep script uses a buildstep base container that needs to be built. It must be created before
you can use the buildstep script. To create it, run:
$ make build
This will create a container called `progrium/buildstep` that contains all supported buildpacks and the
builder script that will actually perform the build using the buildpacks.
## Building an App
Running the buildstep script will take an application tar via STDIN and an application container name as
an argument. It will put the application in a new container based on `progrium/buildstep` with the specified name.
Then it runs the builder script inside the container.
$ cat myapp.tar | ./buildstep myapp
The resulting container has a built app ready to go. The builder script also parses the Procfile and produces
a starter script that takes a process type. Run your app with:
$ docker run -d myapp /bin/bash -c "/start web"
## Adding Buildpacks
Buildstep needs to support a buildpack by installing packages needed to run the build and to run the application
it builds. For example, the Python buildpack would need Python to be installed.
To add a new buildpack to buildstep, add commands to install the necessary packages that the buildpack and built
application environment will need to stack/packages.txt and stack/prepare. Then add the buildpack Git URL to the file stack/buildpacks.txt
You'll then have to re-build.
## License
MIT