Gitlab runner: mirror/cache large gitlab repo locally for performance

How to create a runner-local mirror of the gitlab repos for performance reaons

We use a self-hosted runner, but use Gitlab SaaS to store our large repo (about 50 GB).

When we do a clean build, we need to download the 50GB repo (for each parallel job even), which is a waste of time and resources. It would be great it we could keep a local mirror or some sort of cache of the gitlab repo, and clone from there on a clean checkout, rather than having to pull the full 50GB over the external network.

Any idea how to manage this?

We’re using docker runner types.

Thanks
-Caleb

Something like this seems to be in the ballpark of what I’m thinking of.

Since the bulk of the data is actually in a submodule, it might be viable.