Let’s talk about creating a continuous integration/continuous deployment with gitlab/gitlab-runner/docker.
If you don’t know what CI/CD is, let me just explain it like that: CI is the part where you will build automatically the changes pushed by the developers and CD is the automated deployment of a software when after a build (for example). It’s maybe not totally accurate or maybe only a part of what CI/CD covers but you can get an idea why I find it cool.
Why Docker? Because it can be reproduced on someone else’s machine and this is helpful if a colleague want to play with that for example and it can be less painful to deploy that infrastructure on a server as well.
Goal
Our goal today is deploying a CI/CD infrastructure which will deploy our dockerized application on a docker-machine every time we push a change.
You can find below a schema of the flow and the different actors.
(Yep, not beautiful)