#git #docker #gitlab #gitlab-ci
#git #docker #gitlab #gitlab-ci
Вопрос:
У меня есть изображение gitlab.com/arxeiss/deployer
и проект gitlab.com/arxeiss/my-project
с .gitlab-ci.yml
файлом:
deploy:
image: registry.gitlab.com/arxeiss/deployer
stage: build
Когда я нажимаю на источник, конвейер работает, и изображение успешно извлекается. Но когда кто-то другой нажимает, у кого нет доступа к deployer, выдается эта ошибка: Error response from daemon: pull access denied for registry.gitlab.com/arxeiss/deployer, repository does not exist or may require 'docker login'
Я нашел в документации, которая мне нужна, DOCKER_AUTH_CONFIG
и способ ее настройки. Но это означает, что я должен поместить токен аутентификации из docker login
и ~/.docker/config.json
в переменные CI / CD.
Но это назначено моей учетной записи. Так что кто-то может им воспользоваться, и если я сброшу пароль и т.д. он перестает работать. Есть ли другой способ заставить это работать?
Ответ №1:
Если вы не хотите использовать свои обычные учетные данные, вы можете использовать токен личного доступа или вместо этого развернуть токен — смотрите здесь.
Таким образом, он все равно будет работать, если вы измените свой пароль, и, в качестве бонуса, вы можете отозвать его, не меняя свой обычный пароль.
Комментарии:
1. Итак, вместо моих учетных данных я помещаю токен развертывания в JSON, и это будет работать так же? Это потрясающе. Я попробую это, когда доберусь до ПК
2. Пока токен имеет правильные разрешения, да.
3. Отлично, это работает! Когда я создал токен развертывания с помощью
read_registry
, я получил имя пользователя и пароль токена. Их мне пришлось преобразовать в Basic Auth и поместить в JSON ( docs.gitlab.com/ee/ci/docker /… — Второй способ). И-n
переключение послеecho
очень важно!