A Cloud Foundry buildpack for Node based apps.
This is based on the [Heroku buildpack] (https://github.com/heroku/heroku-buildpack-nodejs).
Additional documentation can be found at the CloudFoundry.org.
Official buildpack documentation can be found at http://docs.cloudfoundry.org/buildpacks/node/index.html).
- Make sure you have fetched submodules
git submodule update --init
- Get latest buildpack dependencies
BUNDLE_GEMFILE=cf.Gemfile bundle
- Build the buildpack
BUNDLE_GEMFILE=cf.Gemfile bundle exec buildpack-packager [ --cached | --uncached ]
- Use in Cloud Foundry
Upload the buildpack to your Cloud Foundry and optionally specify it by name
cf create-buildpack custom_node_buildpack node_buildpack-offline-custom.zip 1
cf push my_app -b custom_node_buildpack
Buildpacks use the Machete framework for running integration tests.
To test a buildpack, run the following command from the buildpack's directory:
BUNDLE_GEMFILE=cf.Gemfile bundle exec buildpack-build
More options can be found on Machete's GitHub page.
Find our guidelines here.
Join the #buildpacks channel in our [Slack community] (http://slack.cloudfoundry.org/)
Open an issue on this project
The project backlog is on Pivotal Tracker
-
Mount your app in readonly mode on docker
docker run -it -v path_to_node_app:/app2 -v /path_to_buildpack/nodejs-buildpack:/bp cloudfoundry/cflinuxfs2 bash
-
Run the following command
export CF_STACK=cflinuxfs2 && cp -r /app2 /buildDir && ./bp/bin/supply /buildDir /cache /deps 0
The first command is setting up the stack, the 2nd command copies the app in a buildDir so that we can replicate the steps without changing the app directory and the last command runs the supply script with arguments build directory, cache dir and dependency dir in that order.
-
If step 2 fails, make the nexcessary changes to the buildpack locally.
-
Exit out of the docker shell and follow steps 1, 2 again.