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.