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