Я пытаюсь настроить среду CI для создания и отправки образа Docker для проекта. Реестр Docker, на который я пытаюсь нажать, - это частный реестр, который требует от меня входа. Я могу войти в реестр с помощью docker login my-registry
команда.
Я не могу изменить конфигурацию реестра.
В настоящее время я использую GitLab shell
runner на моем ПК, который создает образ Docker. Бегун также должен иметь возможность войти в реестр с помощью вышеупомянутой команды. Проблема в том, что ему, конечно, нужны учетные данные.
Я не хочу хранить учетные данные в виде обычного текста где-нибудь в gitlab-runner
пользователь может получить к ним доступ напрямую, потому что кто-то с доступом к .gitlab-ci.yaml
мог бы тогда просто сделать cat password.txt
или docker-credentials-secretservice get
или что-то подобное для получения учетных данных.
Вопросы:
docker login
может получить к ним доступ и расшифровать, и никакая другая команда, которая может быть выполнена из .gitlab-ci.yaml
?на вашей машине runner попробуйте su на gitlab-runner и docker login -u username private.host
. Затем учетные данные для входа будут сохранены в ~ / .docker / config.json, и теперь они будут хороши для команд gitlab-runner docker.