Docker authentication token expiry

I am having an issue with my gitlab docker registry whereby I am pushing a 2Gb image that takes about 20 minutes to push. After a successful login I initiate the push but before it finishes off the connection is broken due to:

49f2b1087723: Layer already exists 
a6fcfd4a216f: Layer already exists 
b1f5bd0546bb: Pushing [==================================================>]  1.615GB
59b2e6f8cf4b: Layer already exists 
a39bd6666def: Layer already exists 
f06612f26b26: Layer already exists 
1274df611037: Layer already exists 
d703e2bcb94d: Layer already exists 
3358360aedad: Layer already exists 
unauthorized: authentication required

The server shows:

2018-05-01_20:32:45.22024 gitlab registry: time="2018-05-01T22:32:45.220026174+02:00" level=info msg="token not to be used after 2018-05-01 22:26:55 +0200 CEST - currently 2018-05-01 22:32:45.220002622 +0200 CEST m=+1862564.787263655"

First, it’s strange that it’s indeed 22.32 and the log message knows that but it’s still tagged initially as 20:32. That’s another issue… sigh

The point here is that the token expiration is too short. How can I increase this? Who deals with this? Docker engine or registry? Who sets this up and how can I change it?