The Kubernetes-native platform (v2).
The Package manager for Kubernetes.
The Kubernetes-native Service Broker.
Drycc supports deploying applications via Heroku Buildpacks. Buildpacks are useful if you're interested in following Heroku's best practices for building applications or if you are deploying an application that already runs on Heroku.
For Buildpack based application deploys via
git push, Drycc Workflow identifies users via SSH keys. SSH keys are pushed to the platform and must be unique to each user.
See this document for instructions on how to generate an SSH key.
drycc keys:add to upload your SSH key to Drycc Workflow.
$ drycc keys:add ~/.ssh/id_drycc.pub Uploading id_drycc.pub to drycc... done
Read more about adding/removing SSH Keys here.
If you do not have an existing application, you can clone an example application that demonstrates the Heroku Buildpack workflow.
$ git clone https://github.com/drycc/example-go.git $ cd example-go
drycc create to create an application on the Controller.
$ drycc create Creating application... done, created skiing-keypunch Git remote drycc added
git push drycc master to deploy your application.
$ git push drycc master Counting objects: 75, done. Delta compression using up to 8 threads. Compressing objects: 100% (48/48), done. Writing objects: 100% (75/75), 18.28 KiB | 0 bytes/s, done. Total 75 (delta 30), reused 58 (delta 22) Starting build... but first, coffee! -----> Go app detected -----> Checking Godeps/Godeps.json file. -----> Installing go1.4.2... done -----> Running: godep go install -tags heroku ./... -----> Discovering process types Procfile declares types -> web -----> Compiled slug size is 1.7M Build complete. Launching app. Launching... Done, skiing-keypunch:v2 deployed to Drycc Use 'drycc open' to view this application in your browser To learn more, use 'drycc help' or visit http://drycc.cc To ssh://firstname.lastname@example.org:2222/skiing-keypunch.git * [new branch] master -> master $ curl -s http://skiing-keypunch.example.com Powered by Drycc Release v2 on skiing-keypunch-v2-web-02zb9
Because a Heroku-style application is detected, the
web process type is automatically scaled to 1 on first deploy.
drycc scale web=3 to increase
web processes to 3, for example. Scaling a
process type directly changes the number of pods running that process.
For convenience, a number of buildpacks come bundled with Drycc:
Drycc will cycle through the
bin/detect script of each buildpack to match the code you
To use a custom buildpack, set the
BUILDPACK_URL environment variable.
$ drycc config:set BUILDPACK_URL=https://github.com/dpiddy/heroku-buildpack-ruby-minimal Creating config... done, v2 === humble-autoharp BUILDPACK_URL: https://github.com/dpiddy/heroku-buildpack-ruby-minimal
If, however, you're unable to deploy using the latest version of the buildpack, You can set an exact version of a buildpack by using a git revision in your
BUILDPACK_URL. For example:
On your next
git push, the custom buildpack will be used.
Sometimes, an application needs a way to stop or check if a service is running before building an
app, which may require notifying a service that the Builder has finished compiling the app. In
order to do this, an app can provide two files in their
The builder will run these commands before and after the build process, respectively.
To pull code from private repositories, set the
SSH_KEY environment variable to a private key
which has access. Use either the path of a private key file or the raw key material:
$ drycc config:set SSH_KEY=/home/user/.ssh/id_rsa $ drycc config:set SSH_KEY="""-----BEGIN RSA PRIVATE KEY----- (...) -----END RSA PRIVATE KEY-----"""
For example, to use a custom buildpack hosted at a private GitHub URL, ensure that an SSH public
key exists in your GitHub settings. Then set
SSH_KEY to the corresponding SSH private key
BUILDPACK_URL to the URL:
$ drycc config:set SSH_KEY=/home/user/.ssh/github_id_rsa $ drycc config:set BUILDPACK_URLemail@example.com:user/private_buildpack.git $ git push drycc master
Which way to build a project conforms to the following principles:
containeris used by default
DRYCC_STACKto determine which stack to use.