The Cloud Foundry API (CAPI) V3 supports using a single command to push apps that run multiple processes, such as a web app that has a UI process and a worker process. You can push an app with multiple processes using either a manifest or a Procfile.
For more information about processes, see Processes in the CAPI V3 documentation.
To push an app with multiple processes using a manifest:
Create a file that defines a manifest. Include each process with its start command. See the following example, which defines the app
example-app with two processes:
version: 1 - name: example-app processes: - type: web command: bundle exec rackup config.ru -p $PORT instances: 3 - type: worker command: bundle exec rake worker:start health-check-type: process instances: 2
Push the app using your manifest:
cf push -f example-manifest.yml
For more information about defining processes with manifests, see processes in App Manifest Attribute Reference.
To push an app with multiple processes using a Procfile:
Note: Procfile support varies depending on the buildpack you use. For example, the Staticfile buildpack requires a Staticfile instead of a Procfile. For more information, see Staticfile Buildpack.
Create a file named
Procfile in the root of your app directory.
Note: For more information about Procfiles, see Procfiles in the CAPI V3 documentation.
Add each process and its start command to the Procfile. See the following example:
web: bundle exec rackup config.ru -p $PORT worker: bundle exec rake worker:start
Push the app:
cf push myapp
By default, the web process has a route and one instance. Other processes have zero instances by default.
To scale an app process:
cf CLI v7:
cf scale APP-NAME --process PROCESS-NAME -i INSTANCE-COUNT
APP-NAMEis the name of your app.
PROCESS-NAMEis the name of the process you want to scale.
INSTANCE-COUNTis the number of instances to which you want to scale the process.
To view the processes running as part of an app, run
cf APP-NAME, where
APP-NAME is the name of your app. See the following example in which the app has a
web and a
$ cf app myapp Showing health and status for app myapp in org test / space test as admin... name: myapp requested state: started processes: web:1/1, worker:2/2 memory usage: 256M x 1, 256M x 2 routes: myapp.cloudfoundry.example.com stack: cflinuxfs3 buildpacks: ruby web:1/1 state since cpu memory disk #0 running 2017-09-25 15:43:26 PM 0.2% 18.9M of 256M 84.4M of 1G worker:2/2 state since cpu memory disk #0 running 2017-09-25 15:49:46 PM 0.1% 5M of 256M 73M of 1G #1 running 2017-09-25 15:49:46 PM 0.1% 5M of 256M 73M of 1G