Docker Image with separate services
Summary
The majority of the issues that I face with Gitlab seem to stem from the fact that there are multiple services all running in the same container. This seems contrary to the best practices for Docker and I think if this were not so it would be much easier to debug as well administer a Gitlab instance.
Proposal
Instead of an Omnibus install, I would like to see multiple (dependent and non-dependent) services in one docker-compose file.
Like so:
version: "3.7"
services:
gitlab-ce:
...
gitlab-runner:
...
gitlab-prometheus:
...
gitlab-pages:
...
gitlab-registry:
...
etc.
This would make it much easier to debug specific aspects of Gitlab, as well as enable and disable functionality. It wold be a more modular approach. However, my biggest reason for asking is that my Gitlab is behind Traefik and I find that configuring the proxy for each of these different services to be a major headache.
This would allow me to proxy each of the services such as pages entirely separately from the gitlab-ce instance itself. I could do the same with each of the services and even give them each their own subdomain. I could also much more easily scale the services and distribute them across different docker hosts.