RegistryΒΆ
HarborΒΆ
To store our Docker images, weβre running our own Harbor instance.
Note
The deployment, and all documentation for Harbor can be found in the GitLab Harbor project.
Registry projectsΒΆ
Weβve several projects in our Harbor, according to the following convention:
base: Project for our public Base imagesinternal: Project for our internal images (e.g. non-product development, web, docs){product name}: Product-specific projects (each product gets its own project)
Hint
Weβre distributing our products via (Docker) images to different customers. Thus weβve decided to have a dedicated registry project for each product, so that weβve granular access control.
Image retentionΒΆ
Having proper garbage collection, resp. retention is crucial for storage space, and to provide cleaned up repositories.
Our retention for all Docker registries, resp. images is set to the following rules:
latestimages will always be retainedThe 10 most recently pushed semantic-versioned images (e.g.
1.2.3) will be retainedAll other images will retained for 7 days after theyβve been pushed
Note
There are some exceptions, such as the base images, as theyβre sometimes named differently (e.g. python:3, or debian:trixie).
Hint
Of course, misconfigured garbage collection can remove some of those βstill neededβ images. Even so, thanks to our automated pipelines, most images can be easily rebuilt from scratch.