prog.Dusan
prog.Dusan

Reputation: 1424

Docker Cloud Automated builds

I am trying to understand a main differences between automated builds via Docker Cloud and other CI servers like Jenkins, Circle...

From my understandings through Docker Cloud I could link Github repo and trigger web hooks on particular branch changes. Doing so, with a proper configuration DockerCloud automatically run, test and build my image and finally deploy to linked remote sever like AWS...

So, the same workflow is achievable and it's common CI/CD implementation using CI servers like Jenkins, Circle. Which basically perform the same steps as DockerCloud does.

What is the difference between using Jenkins CI and Docker Cloud Automated builds?

Which approach should I use in order to integrate full CI/CD pipeline in my development workflow?

Upvotes: 0

Views: 685

Answers (1)

n2o
n2o

Reputation: 6477

Docker Hubs main goal is to provide an image of your code, which could easily be distributed among your users. It is very simple to build this image and most services can connect to Docker Hub to download this image.

Docker Hub is very slow and many functions are missing, e.g. you can't abort the building process and you don't get live output of the building process. This is where a full CI comes into play, where you have these features. Also it is more suitable for testing and deploying, because you can define separate tasks for your tests (unit tests, integration tests, ...) or deployment / production stages.

Most CIs, like CircleCI, can be configured to build, test and deploy your image to Docker Hub, so you don't need to build it on Docker Hub itself. I like this, because as I already said you have no control of the building process on Docker Hub itself, which can be very annoying when you have to wait minutes until your only worker has finished his task.

So Docker Hub can be used when you want to build your image, but it lacks some features which reduces its usability for testing the image. Therefore, I'd suggest to use a full CI for testing and then trigger a build on Docker Hub (or in the CI itself) to build and publish your production-ready image. Personally, I am using CircleCI to test my image and when I push to master a production ready image is built and pushed to Docker Hub.

Upvotes: 2

Related Questions