4

I already have a build server that I generate a docker image for an application with and then put it into cloud storage. This is not an image that can be publicly shared on the docker index. How can I run this application docker image in deis?

Deis is designed to build your docker image from your git repo via a buildpack or Dockerfile (although I can't find instructions on how to use a Dockerfile instead of a buildpack). This could be considered a legacy integration issue. However, the current setup of running the build service on the application cluster is not good for me, because I want my build server to be a lot more powerful than my application server. Ideally my build server would spin up on demand, although I don't bother with that rigt now.

enrique-carbonell
  • 5,836
  • 3
  • 30
  • 44
Greg Weber
  • 3,228
  • 4
  • 21
  • 22

2 Answers2

3

We are hoping to resolve this feature request with https://github.com/deis/deis/issues/533.

Ideally we see it as "build your image with - insert CI product here - then run deis push --app=appname to deploy your docker image as an application". After that, it would be treated the same as any other application deployed to deis. Basically, deis push is to pushing docker images as git push is to pushing repositories.

In regards to documentation for deploying an application with a Dockerfile, the docs are at http://docs.deis.io/en/latest/developer/dockerfile/, though this workflow will change back to a more sane deployment workflow once https://github.com/deis/deis/pull/967 is merged. There was some technical debt from v0.8.0, and Dockerfile deployments was one of them.

bacongobbler
  • 867
  • 6
  • 14
  • So in the future a controller will be able to receive a docker image. But I am fine manually writing a service that will retrieve the docker image, and pushing that service out with fleetctl. Is there a trigger so that I can put the service (a web application) into the Deis load balancer? – Greg Weber May 14 '14 at 23:56
  • alternatively, now that the Dockerfile deploy for 967 is ready to merge, I could provide a Dockerfile that just builds on top of my private image. But how can I get that private image into deis? I could put it on index.docker.io, but how do I get my docker credentials into deis so that it can pull that image? – Greg Weber May 15 '14 at 17:43
0

Deis is designed to build your docker image from your git repo via a buildpack or Dockerfile

The quote is not quite right. Deis is actually designed to build the docker image from its own git repo. When you create a deis application using deis create, Deis will create new git remote name deis, that's why you run git push deis master to build you application.

So, you don't need to push your image to a public repository in order to deploy to Deis. All you need is a Dockerfile. Just put your Dockerfile in the root directory of your application and make sure to commit that file, Deis will build the application using Dockerfile, instead of buildpack.

Hope this will help!

Quyen Nguyen Tuan
  • 1,677
  • 17
  • 23