| title: | Deploying Docker Images on Deis |
|---|---|
| description: | How to deploy applications on Deis using Docker Images |
Deis supports deploying applications via an existing Docker Image. This is useful for integrating Deis into Docker-based CI/CD pipelines.
Start by cloning an example application:
$ git clone https://github.com/deis/example-go.git
$ cd example-go
$ git checkout dockerNext use your local docker client to build the image and push
it to DockerHub.
$ docker build -t <username>/example-go .
$ docker push <username>/example-goIn order to deploy Docker images, they must conform to the following requirements:
- The Docker image must EXPOSE only one port
- The exposed port must be an HTTP service that can be connected to an HTTP router
- A default CMD must be specified for running the container
Note
Docker images which expose more than one port will hit issue 1156.
Attention!
Support for non-HTTP services is coming soon
Use deis create to create an application on the :ref:`controller`.
$ mkdir -p /tmp/example-go && cd /tmp/example-go
$ deis create
Creating application... done, created example-goNote
The deis client uses the name of the current directory as the
default app name.
Use deis pull to deploy your application from DockerHub or
a private registry.
$ deis pull gabrtv/example-go:latest
Creating build... done, v2
$ curl -s http://example-go.local3.deisapp.com
Powered by DeisBecause you are deploying a Docker image, the cmd process type is automatically scaled to 1 on first deploy.
Attention!
Support for Docker registry authentication is coming soon
Docker containers have a default command usually specified by a CMD instruction.
Deis uses the cmd process type to refer to this default command.
Process types other than cmd are not supported when using Docker images.