You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+31-35Lines changed: 31 additions & 35 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -17,19 +17,19 @@ Trying out Deis? Continue following these instructions for a local installation
17
17
## Install prerequisites
18
18
19
19
* Due to its nature as a distributed system, we strongly recommend using Deis with a minimum of 3 nodes even for local development and testing
20
-
* The Deis containers will consume approximately 5 GB of RAM across the cluster. Please be sure you have sufficient free memory before proceeding.
20
+
* The Deis "control plane" containers will consume approximately 2 GB of RAM across the cluster. Please be sure you have sufficient free memory before proceeding.
21
21
* Install [Vagrant v1.6+](http://www.vagrantup.com/downloads.html) and [VirtualBox](https://www.virtualbox.org/wiki/Downloads)
22
22
23
23
Note for Ubuntu users: the VirtualBox package in Ubuntu (as of the last known release for 14.04) has some issues when running in RAM-constrained environments. Please install the latest version of VirtualBox from Oracle's website.
24
24
25
25
## Configure Discovery
26
26
27
-
Each time you spin up a new CoreOS cluster, you **must** provide a new [discovery service URL](https://coreos.com/docs/cluster-management/setup/cluster-discovery/) in the [CoreOS user-data](https://coreos.com/docs/cluster-management/setup/cloudinit-cloud-config/) file. This URL allows hosts to find each other and perform initial leader election.
27
+
Each time you spin up a new CoreOS cluster, you **must** provide a new [discovery service URL](https://coreos.com/docs/cluster-management/setup/cluster-discovery/) in the [CoreOS user-data](https://coreos.com/docs/cluster-management/setup/cloudinit-cloud-config/) file. This URL allows hosts to find each other and perform leader election.
28
28
29
29
Automatically generate a fresh discovery URL with:
or manually edit [contrib/coreos/user-data](contrib/coreos/user-data) and add a unique discovery URL generated from <https://discovery.etcd.io/new>.
@@ -63,16 +63,16 @@ Export `DEISCTL_TUNNEL` so you can connect to one of the VMs using the `deisctl`
63
63
$ export DEISCTL_TUNNEL=172.17.8.100
64
64
```
65
65
66
-
Use `deisctl install platform` to install all Deis components across the cluster, then `deisctl start platform` to start them. This can take some time - the registry service will pull and prepare a large Docker image, the builder service will download the Heroku cedar stack. Grab some more coffee!
66
+
Use `deisctl install platform` to install all Deis components across the cluster, then `deisctl start platform` to start them.
67
67
68
68
```console
69
69
$ deisctl install platform
70
70
$ deisctl start platform
71
71
```
72
72
73
-
Your Deis installation should now be accessible at `deis.local3.deisapp.com`.
73
+
This can take some time - the **builder** and **registry** components must download and install the beefy Heroku cedar stack. Grab some more coffee!
74
74
75
-
For clusters on other platforms see our guide to [Configuring DNS](http://docs.deis.io/en/latest/installing_deis/configure-dns/).
75
+
Your Deis platform should be accessible at `deis.local3.deisapp.com`. For clusters on other platforms see our guide to [Configuring DNS](http://docs.deis.io/en/latest/installing_deis/configure-dns/).
76
76
77
77
## Install the Deis Client
78
78
@@ -97,7 +97,7 @@ $ deis register http://deis.local3.deisapp.com
97
97
$ deis keys:add
98
98
```
99
99
100
-
Use `deis keys:add` to add your SSH public key for `git push` access.
100
+
Use `deis keys:add` to add your SSH public key for `git push` access -- normally `$HOME/.ssh/id_rsa.pub`.
101
101
102
102
## Initialize a Cluster
103
103
@@ -117,12 +117,24 @@ The `dev` cluster will be used as the default cluster for future `deis` commands
117
117
118
118
# Usage
119
119
120
-
## Clone an example application or use an existing one
121
-
Example applications can be cloned from the Deis GitHub [organization](https://github.com/deis).
122
-
Commonly-used example applications include [Helloworld (Dockerfile)](https://github.com/deis/helloworld), [Go](https://github.com/deis/example-go), and [Ruby](https://github.com/deis/example-ruby-sinatra).
120
+
Deis supports 3 deployment workflows:
121
+
122
+
* Heroku Buildpacks via `git push` -- Learn more about [Using Buildpacks](http://docs.deis.io/en/latest/using_deis/using-buildpacks/)
123
+
* Dockerfiles via `git push` -- Learn more about [Using Dockerfiles](http://docs.deis.io/en/latest/using_deis/using-dockerfiles/)
124
+
* Docker Images via `deis pull` -- Learn more about [Using Docker Images](http://docs.deis.io/en/latest/using_deis/using-docker-images/)
125
+
126
+
As an example, we will walk through deploying a Ruby application using the Heroku Buildpack workflow.
From within the application directory, create an application on the default `dev` cluster:
137
+
From within the application directory, create an application on Deis:
126
138
127
139
```console
128
140
$ cd example-ruby-sinatra
@@ -131,16 +143,14 @@ $ deis create
131
143
132
144
Use `deis create --cluster=prod` to place the app on a different cluster. Don't like our name-generator? Use `deis create myappname`.
133
145
134
-
## Push
135
-
Push builds of your application from your local git repository or from a Docker Registry. Each build creates a new release, which can be rolled back.
136
-
137
-
#### From a Git Repository
138
-
When you created the application, a git remote for Deis was added automatically.
146
+
## Deploy
147
+
When you created the application, a git remote for Deis was added automatically. Deploy with `git push`.
139
148
140
149
```console
141
150
$ git push deis master
142
151
```
143
-
This will use the Deis builder to package your application as a Docker Image and deploy it on your application's cluster.
152
+
This will use the Deis builder to package your application as a Docker Image and automatically deploy it to the platform.
153
+
Each build creates a new release, which can be rolled back.
144
154
145
155
## Configure
146
156
Configure your application with environment variables. Each config change also creates a new release.
@@ -150,14 +160,13 @@ $ deis config:set DATABASE_URL=postgres://
150
160
```
151
161
152
162
## Test
153
-
### Run tests
154
-
Test your application by running commands inside an ephemeral Docker container.
163
+
Test the application by running your test suite inside an ephemeral Docker container.
155
164
156
165
```console
157
166
$ deis run make test
158
167
```
159
168
160
-
To integrate with your CI system, check the return code.
169
+
Use the return code to integrate with a CI system.
161
170
162
171
## Scale
163
172
Scale containers horizontally with ease.
@@ -173,7 +182,7 @@ Access to aggregated logs makes it easy to troubleshoot problems with your appli
173
182
$ deis logs
174
183
```
175
184
176
-
Use `deis run` to execute one-off commands and explore the deployed container. Coming soon: `deis attach` to jump into a live container.
185
+
Use `deis run` to execute one-off commands and explore the deployed container.
177
186
178
187
## Testing the cluster
179
188
@@ -197,22 +206,9 @@ The most common cause of this issue is that a [new discovery URL](https://discov
197
206
This usually means the controller failed to submit jobs to the scheduler. `deisctl journal controller` will show detailed error information, but the most common cause of this is that the cluster was created with the wrong SSH key for the `--auth` parameter. The key supplied with the `--auth` parameter must be the same key that was used to provision the Deis servers. If you suspect this to be the issue, you'll need to `clusters:destroy` the cluster and recreate it, along with the app.
198
207
199
208
#### A Deis component fails to start
200
-
201
209
Use `deisctl status <component>` to view the status of the component. You can also use `deisctl journal <component>` to tail logs for a component, or `deisctl list` to list all components.
202
210
203
-
The most common cause of services failing to start are sporadic issues with DockerHub. The telltale sign of this is:
204
-
205
-
```console
206
-
May 12 18:24:37 deis-3 systemd[1]: Starting deis-controller...
207
-
May 12 18:24:37 deis-3 sh[6176]: 2014/05/12 18:24:37 Error: No such id: deis/controller
208
-
May 12 18:24:37 deis-3 sh[6176]: Pulling repository deis/controller
209
-
May 12 18:29:47 deis-3 sh[6176]: 2014/05/12 18:29:47 Could not find repository on any of the indexed registries.
210
-
May 12 18:29:47 deis-3 systemd[1]: deis-controller.service: control process exited, code=exited status=1
211
-
May 12 18:29:47 deis-3 systemd[1]: Failed to start deis-controller.
212
-
May 12 18:29:47 deis-3 systemd[1]: Unit deis-controller.service entered failed state.
213
-
```
214
-
215
-
We are exploring workarounds and are working with the Docker team to improve DockerHub reliability. In the meantime, try starting the service again with `deisctl restart <component>`.
211
+
The most common cause of services failing to start are sporadic issues with Docker Hub. We are exploring workarounds and are working with the Docker team to improve Docker Hub reliability. In the meantime, try starting the service again with `deisctl restart <component>`.
216
212
217
213
### Any other issues
218
214
Running into something not detailed here? Please [open an issue](https://github.com/deis/deis/issues/new) or hop into [#deis](https://botbot.me/freenode/deis/) and we'll help!
0 commit comments