$CI_BUILD_TOKEN doesn't allow to push to container registry if repo name is the same as group name
Having this setup at `.gitlab-ci.yml` for repo `test` in `test` group (please note the same name for repo and group)
```yml
image: docker:latest
before_script:
- docker login -u gitlab-ci-token -p $CI_BUILD_TOKEN $CI_REGISTRY
- echo "CONTAINER_TEST_IMAGE=$CONTAINER_TEST_IMAGE"
- echo "CONTAINER_RELEASE_IMAGE=$CONTAINER_RELEASE_IMAGE"
variables:
CONTAINER_TEST_IMAGE: $CI_REGISTRY_IMAGE:$CI_BUILD_REF_NAME
CONTAINER_RELEASE_IMAGE: $CI_REGISTRY_IMAGE:latest
stage: prebuild
script:
- docker build --pull -t $CONTAINER_TEST_IMAGE .
- docker push $CONTAINER_TEST_IMAGE
```
gives the following output:
```
Running with gitlab-ci-multi-runner 1.4.2 (bcc1794)
Using Docker executor with image docker:latest ...
Pulling docker image docker:latest ...
...
$ docker login -u gitlab-ci-token -p $CI_BUILD_TOKEN $CI_REGISTRY
Login Succeeded
$ echo "CONTAINER_TEST_IMAGE=$CONTAINER_TEST_IMAGE"
CONTAINER_TEST_IMAGE=registry.example.com/test/test:master
$ echo "CONTAINER_RELEASE_IMAGE=$CONTAINER_RELEASE_IMAGE"
CONTAINER_RELEASE_IMAGE=registry.example.com/test/test:latest
$ docker build --pull -t $CONTAINER_TEST_IMAGE .
...
$ docker push $CONTAINER_TEST_IMAGE
The push refers to a repository [registry.example.com/test/test]
f30166827568: Preparing
...
cb28dbff7968: Waiting
...
unauthorized: authentication required
ERROR: Build failed: exit code 1
```
Having the same configuration at `.gitlab-ci.yml` for repo `foo` in `test` group gives green output:
```
Running with gitlab-ci-multi-runner 1.4.2 (bcc1794)
Using Docker executor with image docker:latest ...
Pulling docker image docker:latest ...
...
$ docker login -u gitlab-ci-token -p $CI_BUILD_TOKEN $CI_REGISTRY
Login Succeeded
$ echo "CONTAINER_TEST_IMAGE=$CONTAINER_TEST_IMAGE"
CONTAINER_TEST_IMAGE=registry.example.com/test/foo:master
$ echo "CONTAINER_RELEASE_IMAGE=$CONTAINER_RELEASE_IMAGE"
CONTAINER_RELEASE_IMAGE=registry.example.com/test/foo:latest
$ docker build --pull -t $CONTAINER_TEST_IMAGE .
...
$ docker push $CONTAINER_TEST_IMAGE
The push refers to a repository [registry.example.com/test/foo]
30f8dd4fbaf4: Preparing
...
ef855ec71179: Waiting
...
30f8dd4fbaf4: Pushed
...
master: digest: sha256:e2d7015247e7b5c689a1eaefdf6fd5952e16602c33fc3d243f3d4dbc63d57624 size: 1575
Build succeeded
```
When removed `docker login` line from `.gitlab-ci.yml` *and* added `volumes = ["/root/.docker/config.json:/root/.docker/config.json:ro"]` at `/etc/gitlab-runner/config.toml` on successfully logined at GitLab's Container Registry host everything works fine:
```
Running with gitlab-ci-multi-runner 1.4.2 (bcc1794)
Using Docker executor with image docker:latest ...
Pulling docker image docker:latest ...
...
$ echo "CONTAINER_TEST_IMAGE=$CONTAINER_TEST_IMAGE"
CONTAINER_TEST_IMAGE=registry.example.com/test/test:master
$ echo "CONTAINER_RELEASE_IMAGE=$CONTAINER_RELEASE_IMAGE"
CONTAINER_RELEASE_IMAGE=registry.example.com/test/test:latest
$ docker build --pull -t $CONTAINER_TEST_IMAGE .
...
$ docker push $CONTAINER_TEST_IMAGE
The push refers to a repository [registry.example.com/test/test]
f30166827568: Preparing
...
cb28dbff7968: Waiting
...
f30166827568: Pushed
...
testing: digest: sha256:2e203290df18f47fefc202ccb897a970b528a0b1520c9f11d64bd56bef289e19 size: 3451
Build succeeded
```
The only reason for this behavior I can see here is the same name for repo and group.
```
GitLab 8.11.0
GitLab Shell 3.4.0
GitLab Workhorse 0.7.8
```
issue