forked from cloudfoundry/docs-dev-guide
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmultiple-processes.html.md.erb
110 lines (75 loc) · 3.89 KB
/
multiple-processes.html.md.erb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
---
title: Pushing an App with Multiple Processes
owner: CAPI
---
This topic describes how to push and manage apps with multiple processes.
## <a id="about-processes"></a> About Processes
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. To push an app that creates multiple processes from the same codebase, you first define its processes in a Procfile. For more information, see [Push an App with Multiple Processes](#push-with-multiple-processes) below.
For more information about processes, see [Processes](http://v3-apidocs.cloudfoundry.org/index.html#processes) in the CAPI V3 documentation.
## <a id="push-with-multiple-processes"></a> Push an App with Multiple Processes
This section describes how to push an app with multiple processes using either a manifest or a Procfile.
### <a id="manifest"></a>Push an App with Multiple Processes Using a Manifest
To push an app with multiple processes using a manifest:
1. 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:
```yaml
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
```
1. Push the app using your manifest:
```console
cf push -f example-manifest.yml
```
For more information about defining processes with manifests, see [processes](deploy-apps/manifest-attributes.html#processes") in _App Manifest Attribute Reference_.
### <a id="procfile"></a>Push an App with Multiple Processes Using a Procfile
To push an app with multiple processes using a Procfile:
<p class="note"><strong>Note:</strong> 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 <a href="../buildpacks/staticfile/index.html">Staticfile Buildpack</a>.</p>
1. Create a file named `Procfile` in the root of your app directory.
<p class="note"><strong>Note:</strong> For more information about Procfiles, see <a href="https://v3-apidocs.cloudfoundry.org/index.html#procfiles">Procfiles</a> in the CAPI V3 documentation.</p>
1. 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
```
1. Push the app:
```
cf push myapp
```
By default, the web process has a route and one instance. Other processes have zero instances by default.
## <a id="scale-a-process"></a> Scale a Process
To scale an app process:
1. Run:
```
cf scale APP-NAME --process PROCESS-NAME -i INSTANCE-COUNT
```
Where:
* `APP-NAME` is the name of your app.
* `PROCESS-NAME` is the name of the process you want to scale.
* `INSTANCE-COUNT` is the number of instances to which you want to scale the process.
## <a id="view-processes"></a> View Processes
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 `worker` process.
<pre class="terminal">
$ 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
</pre>