In the case you're a Docker user, and writing tests you're probabely looking for the new perfect CI (Continuous Integration server) for your project.

As of today you can find 2 of them: Drone and Shippable.

I have tests both of them and both are working the same way:

  • Checkout your code
  • Build an image based on your .drone.yml or shippable.yml file
  • Run your tests
  • Deploy the code (Shippalbe can also push the image in a registry)
  • Then destroy

This is already good but it's breaking the Docker design in my opinion.
Using Docker within a project development workflow means:

  • Develop and run the tests in a Docker image
  • Deploy the image in UAT
  • Deploy the image in Production

As soon as you skip one of this steps, it means you're not using Docker correctly.

It's based on this constatation that I have started the project

This project will work as the following:

  • Checkout your code
  • Build your image using your Dockerfile


  • Pull your image


  • Run the tests in your image
  • Tag your image and publish it in a registry (public or private)
  • Deploy your image in UAT automatically
  • Deploy your image in production on demand

With you will then follow this workflow:

  • Build your image
  • Develop some features / fix bugs
  • Push your code/image
  • Test your modifications within your test region

Then when all went fine, someone can click the deploy button for production.

Current status

As of now, the project is under heavy development. The library which do the work is able to build your image, that's all for now.

Soon it will be able to run your test and publish the image used for the tests within your registry and deploy.

I have already registered the domain name. :-)


You can follow the Twitter account @dockerci where I'm tweeting about the progress in a more detailed way.