I use Gitlab CE already for quite a while and started with integrated CI recently. I really love the ability to run tests automatically and see the results…

My new Perl project uses some modules from CPAN, well, more or less every project does, and I started using Dist::Zilla. This is a different story to tell…

However, with Dist::Zilla I’m now able to get all dependencies and test my project properly. What else do I need, yes, a docker container besides a nice .gitlab-ci.yml file.

After some runs I wanted to use my very own Docker image, because downloading perlbrew and different Perl version and Dist::Zilla every time seemed a waste of time and resources for me.

The Dockerfile was in place quickly, the registry setup following the documentation. The only difference is that I use an Apache server as reverse proxy that is running on that machine anyway.

For the Apache configuration I followed Issue 50: Document how to use Docker Registry with apache.

Everything seemed to work fine until I wanted to upload my newly created image file.

I always got retries all the time and error messages about

dockerd  Upload failed, retrying: EOF

Searching the web didn’t reveal anything useful.

After a while I changed my Apache configuration following the Docker Registry example.

It doesn’t fit perfectly, but I used it as a template. So what now works for me is the following:

  ServerName registry.example.com
  ServerSignature Off
  RequestHeader set X-Forwarded-Proto "https"

ProxyRequests Off ProxyPreserveHost On ProxyPass / http://localhost:5000/ ProxyPassReverse / http://localhost:5000/

<Location /> Order deny,allow Allow from all </Location>

ErrorLog ${APACHELOGDIR}/error.log LogLevel warn CustomLog ${APACHELOGDIR}/access.log combined