I was wondering about how to establish CI/CD on my project.
What is the best practice for that?
I have server where project works without docker containers.
Laravel covers backend (REST API)
NuxtJS covers frontEnd (SSR + SPA)
Recently I have decided to update our infrastructure: I want to dokerize my project.
So, I organized 4 containers:
- mysql
- php
- nuxtjs
- traefik (back proxy)
That’s runnig on localhost good.
I should say, docker — that’s amazing. I have solve lot of problems with the same env on different computers.
Then, I decided to by a new server: Ubuntu.
I have installed docker and docker-compose.
Right now I am wondering how to organize blue-green delivery:
- I want to minimize lock down while delivering new version of code.
- I want to run CD by commit on my gitlab (I have my own gitlab on other my server)
My questions is:
-
is that good way to use just docker-compose but not Kubernetes? I think my project is to small for Kubernetes 🙂 On ther hand I read that Kubernetes already has solved blue-green deployment / logging at setra.
-
how to organize blue-green deployment in the best way? Should I run double containers at the same time and after deploy, turn router in traefik to new container?
-
I heard about technology DinD (docker in docker). Should I run docker compose in docker-container? Or run docker-composer on the host?
3