

Yep take a look, theres quite a few examples, but they use Github Actions, CircleCI, Gitlab etc… etc…
Most CI/CD that use the above-ish model will use the same kinda scripts (bash or otherwise). Basically if you can do it on your desptop, you can automate it on a server. Make it work first, then try to make it better.
Most of the time, ill throw my Docker/Docker Compose (and/or terraform if need be) on the root of the repo and do the same steps I do on the development side for building/testing on the CI side. Then switch over to CD with either a new machine (docker build/ compose) or throw it all on a new server. At that point, if you script it out correctly, it doesnt really matter what kind of server you use for CI/CD, since they are all linux boxes at the end of the day.
You can also mix it up by using bare metal, docker alternatives, different password managers, QA tools, linters, etc…etc…
But virtualization will get you quite far. In my opinion start with just trying to get the project to build on another server via a script from scratch, then transfer it over to the CI. Then go with testing/deployment.
GL!
Interesting, I used to help on the bionic side a long time ago.
I thought it was quite heavy on resources? What are they doing on the docker side to help out? Limiting the CPU?