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.


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.