Skip to content

services alias hostname are not RFC valid (no underscore allowed)

When the services are "aliased" the / are replaced with __ like described in the documentation:

http://doc.gitlab.com/ce/ci/docker/using_docker_images.html#accessing-the-services

The alias hostname for the service is made from the image name following these rules:

Everything after : is stripped
Backslash (/) is replaced with double underscores (__)

The problem is that underscores are not allowed to be present in the hostname (see good explanation here: http://stackoverflow.com/a/2183140/1720344), then they are not RFC-valid. Consequently, this raises errors from third-part checker that complain about invalid/bad hostname.


In my case was a simple project, let say: namespace/name where the hostname-alias of the service is namespace__name and I receive the following error:

URI::InvalidURIError: the scheme http does not accept registry part: namespace__name:2480 (or bad hostname?)

From the common ruby-gem: rest-client.

More exactly, here: https://github.com/rest-client/rest-client/blob/10d3599745a134fa69eccc2f16f6e70133a3bb6c/lib/restclient/request.rb#L357

Note: that the URI.parse method is part of the standard ruby libraries.