Вход в Docker из GitLab CI без возможности доступа к паролю реестра Docker из .gitlab-ci.yaml?

Я пытаюсь настроить среду CI для создания и отправки образа Docker для проекта. Реестр Docker, который я пытаюсь использовать, является частным реестром, который требует от меня входа в систему. Я могу войти в реестр с помощью команды docker login my-registry .

Я не могу изменить конфигурацию реестра.

В настоящее время я использую на своем ПК программу запуска GitLab shell , которая создает образ Docker. Бегун также должен иметь возможность войти в реестр с помощью вышеупомянутой команды. Проблема в том, что ему, конечно, нужны учетные данные.

Я не хочу хранить учетные данные в виде обычного текста где-нибудь, где пользователь gitlab-runner может получить к ним доступ напрямую, потому что кто-то с доступом к .gitlab-ci.yaml может затем просто выполните cat password.txt или docker-credentials-secretservice get или что-то подобное, чтобы получить учетные данные.

Вопросы:

  • Есть ли способ сохранить учетные данные таким образом, чтобы только логин в докере мог получить к ним доступ и расшифровать их, и никакая другая команда, которая могла бы быть выполнена из .gitlab- ci.yaml ?
  • Есть ли альтернативный способ создать и отправить образ докера в частный реестр, когда я не У вас нет доступа к конфигурации реестра?
0
задан 29 May 2018 в 12:04
1 ответ

на вашей машине runner попробуйте su для gitlab-runner и docker login -u username private.host . Затем учетные данные для входа будут сохранены в ~ / .docker / config.json, и теперь они будут пригодны для команд gitlab-runner docker

0
ответ дан 24 November 2019 в 02:36

Теги

Похожие вопросы