Что такое специальный пользователь gitlab-ci-token?

Документы для реестра контейнеров gitlab (https://gitlab.com/help/container_registry/README.md) предоставьте пример конфигурации с этой инструкцией:

- docker login -u gitlab-ci-token -p $CI_BUILD_TOKEN registry.example.com

и это объяснение:

You have to use the credentials of the special gitlab-ci-token user with its password stored in $CI_BUILD_TOKEN in order to push to the Registry connected to your project. This allows you to automated building and deployment of your Docker images.

Я не могу найти никакой документации ни об этом специальном пользователе gitlab-ci-token, ни о переменной $CI_BUILD_TOKEN.

Что это за специальный пользователь? Доступен ли он автоматически? Это должно быть где-то определено? Какое значение должно быть присвоено переменной $CI_BUILD_TOKEN?


person user1447137    schedule 26.05.2016    source источник


Ответы (3)


Gitlab выступает в качестве поставщика аутентификации для реестра. gitlab-ci-token — это автоматически созданный для вас пользователь. CI_BUILD_TOKEN устанавливается автоматически для каждой сборки Gitlab-CI

person Martin    schedule 31.05.2016
comment
вам действительно удалось заставить это работать? где ты нашел эту информацию? Где это задокументировано? Я только что обновил свою установку gitlab CE, и она все еще не работает. echo $CI_BUILD_TOKEN ничего не возвращает $ docker login -u gitlab-ci-token -p $CI_BUILD_TOKEN registry.xxxxx.com Error response from daemon: Get https://registry-1.docker.io/v... unauthorized: incorrect username or password - person user1447137; 06.06.2016
comment
Да, у меня это работает: $ docker login -u gitlab-ci-token -p $CI_BUILD_TOKEN registry.mydomain.com Login Succeeded Информацию можно найти здесь: docs.gitlab.com/ce /container_registry/README.html Section Build and push images using GitLab CI Переменная доступна только в процессе сборки, но не на компьютере, на котором работает GitLab. Если вы хотите войти оттуда, используйте те же учетные данные, которые вы используете при входе в GitLab. - person Martin; 07.06.2016
comment
Немного полезной информации от покупателей gitlab: требуется gitlab runner 1.2. Теперь это работает. - person user1447137; 09.06.2016
comment
И как он входит в реестр докеров с целевого сервера во время развертывания? - person James Lin; 08.11.2018
comment
Вашему исполнителю развертывания (может быть выделенным исполнителем на этом сервере или подключающимся через ssh) вводятся учетные данные, чтобы он мог войти в систему. Если это все еще неясно, пожалуйста, предоставьте немного больше информации о вашей настройке. - person Martin; 08.11.2018

В моем случае обновление gitlab-runner помог мне

person Nick    schedule 28.05.2019

В моем случае это сработало CI-permission

Таким образом, используя пользовательский кредит как gitlab-ci-token и созданный ими $CI_BUILD_TOKEN.

  • Маркер будет доступен для чтения любому, у кого есть доступ разработчика к проекту, который может выполнять задания CI, что позволит разработчику зарегистрировать любой конкретный Runner для этого проекта.
  • Токен разрешал бы доступ только к исходникам проекта, доступ к любым другим проектам был бы запрещен.
person Vishesh Kumar Singh    schedule 17.04.2020