Gitlab CI + Docker Hub: запрошенный доступ к ресурсу запрещен

Я пытаюсь отправить свое изображение в репозиторий docker repositoy с помощью gitlab-ci, но получаю сообщение об ошибке:

отказано: запрошенный доступ к ресурсу запрещен. ОШИБКА: задание не выполнено: код выхода 1

Мой .gitlab-ci.yml

# This file is a template, and might need editing before it works on your project.
# Official docker image.
image: docker:latest

services:
  - docker:dind

before_script:
   - docker version
   - docker-compose version
   - docker login -u $USER -p $PASS index.docker.io


build-master:
  stage: build
  script:
    - apk add --no-cache py-pip
    - pip install docker-compose    
    - docker build --pull -t index.docker.io/$REPOSITORY .
    - docker push index.docker.io/$REPOSITORY
  only:
    - master
  tags:
  - docker

build:
  stage: build
  script:
    - docker build --pull -t index.docker.io/$REPOSITORY:latest .
    - docker push index.docker.io/$REPOSITORY:latest
  except:
    - master
  tags:
  - docker

Образ он строит правильно, но когда иду пихать

The push refers to repository [docker.io/$REPOSITORY]
fc57a6fc4d42: Preparing
09b261acf68f: Preparing
04ea2928643d: Preparing
1132926ce5ae: Preparing
de09db5a8cb2: Preparing
0b75a2e7b59f: Preparing
d01d9d1902f1: Preparing
3dab7cdf2eed: Preparing
1da4e8fff32b: Preparing
23c522961836: Preparing
a51421a28d33: Preparing
8b1c06910686: Preparing
30e8a3d88591: Preparing
fd8fae5cd65a: Preparing
6b68dfad3e66: Preparing
cd7100a72410: Preparing
0b75a2e7b59f: Waiting
d01d9d1902f1: Waiting
3dab7cdf2eed: Waiting
1da4e8fff32b: Waiting
23c522961836: Waiting
a51421a28d33: Waiting
8b1c06910686: Waiting
30e8a3d88591: Waiting
fd8fae5cd65a: Waiting
6b68dfad3e66: Waiting
cd7100a72410: Waiting
denied: requested access to the resource is denied
ERROR: Job failed: exit code 1

Я меняю имя репозитория для $ REPOSITORY только для вставки сюда.

Я уже даю необходимые разрешения на сайте hub.docker.com, чтобы пользователь сделал логин в докере, имеет в репозитории коллаборатор.

Спасибо


person augustoferronato    schedule 08.03.2018    source источник
comment
Возможный дубликат denied: запрошенный доступ к ресурсу запрещен: docker   -  person yamenk    schedule 08.03.2018
comment
Я тоже сталкиваюсь с этим. Как ни странно, логин работает нормально; $ docker login -u $ CI_REGISTRY_USER -p $ CI_REGISTRY_PASSWORD $ CI_REGISTRY ВНИМАНИЕ! Использование --password через CLI небезопасно. Используйте --password-stdin. ПРЕДУПРЕЖДЕНИЕ! Ваш пароль будет храниться в незашифрованном виде в /root/.docker/config.json. Настройте помощник по учетным данным, чтобы удалить это предупреждение. См. docs.docker.com/engine/reference/commandline/login/ Успешный вход в систему Похоже, это связано с gitlab.com/gitlab- org / gitlab-ce / issues / 23339, но я думаю, что это другая проблема. Вы можете оттолкнуться от   -  person 4x0v7    schedule 25.04.2018
comment
$REPOSITORY, вероятно, проблема.   -  person Jonathon Reinhart    schedule 25.04.2018
comment
Попутно ... если вы установите image на tmaier/docker-compose:latest в верхней части .gitlab-ci.yml файла, вам не придется устанавливать pip, а затем устанавливать Docker Compose.   -  person Mark Birbeck    schedule 18.01.2019


Ответы (3)


используйте $CI_REGISTRY и $CI_PROJECT_PATH.

Пример кода:

- docker login -u gitlab-ci-token -p $CI_JOB_TOKEN $CI_REGISTRY/$CI_PROJECT_PATH
- docker build -t $CI_REGISTRY/$CI_PROJECT_PATH/name:latest
- docker push $CI_REGISTRY/$CI_PROJECT_PATH/name:latest
person Hossein    schedule 23.09.2020
comment
Эти предопределенные переменные работают как шарм. Спасибо! - person Levente Orbán; 14.05.2021

Я думаю, что проблема в том, что логин находится в before_script, а не в фактическом script разделе задачи.

Это позор, потому что мне кажется более «правильным» вынести часть входа в раздел before_script, а затем выполнить любые действия, связанные с Docker Hub, которые необходимы в разделе script.

Но я боюсь, что это не сработает - каждый script раздел должен включать свой собственный шаг входа в систему.

person Mark Birbeck    schedule 17.01.2019

У меня была такая же ошибка, и я изменил адрес переменной реестра, который адрес вашего реестра, например registry.gitlab.com/ayil****/emre*****, тогда проблема решена .....

person Gata Haydarpasa    schedule 31.08.2020