Duplicate uploads issue

Scenario:

  1. build project Docker image with tags project:latest and project:my_feature
  2. push all tags of project with commands docker push -s project
  3. 1st tag latest is pushed
    1. preparation of layers (compression, etc)
    2. pushing layers
  4. 2dn tag my_feature is pushed
    1. preparation of layers (compression, etc)
    2. pushing layers
    3. server responds layer already exists

So duplicate layers are not stored server side, but still all of them are compressed and pushed which take long time.

Solution:

Gilab's registry

/opt/gitlab/embedded/bin/registry

./registry --version
./registry github.com/docker/distribution v3.76.0-gitlab

Config file: /var/opt/gitlab/registry/config.yml

During docker push registry store received layers in: /var/opt/gitlab/gitlab-rails/shared/registry/docker/registry/v2/repositories/GROUP/PROJECTs/_uploads/4786e5fa-4e9b-4342-9c6f-3c80d72d07db/data