Как остановить печать учетных данных учетной записи службы на консоли Jenkins? - PullRequest
0 голосов
/ 29 мая 2019

У меня есть сервер Jenkins, который создает проект, создает образ докера и отправляет его в Реестр контейнеров Google.

Я использую служебную учетную запись для входа в GCR с помощью команды docker login -u _json_key -p "$(cat ${service-account.json})" https://gcr.io, как указано здесь

Когда эта строка выполняется, содержимое файла service-account.jsonнапечатано на консоли в конвейере Jenkins.

Как мне остановить печать учетных данных на консоли?

Ответы [ 2 ]

2 голосов
/ 29 мая 2019

Хитрость в том, чтобы использовать флаг --password-stdin.

cat ${service-account.json} | docker login -u _json_key --password-stdin https://gcr.io

Введите пароль, используя STDIN.Для неинтерактивного запуска команды docker login вы можете установить флаг --password-stdin для предоставления пароля через STDIN. Использование STDIN предотвращает попадание пароля в историю оболочки или в файлы журнала.

См. https://docs.docker.com/engine/reference/commandline/login/

Примечание. Файл паролей должен тольковключите пароль, и не должны быть в кодировке JSON.

0 голосов
/ 29 мая 2019

Если вы сохраняете файл ключей JSON и имя пользователя, связанное с ним, в качестве учетных данных в Jenkins, вы можете ссылаться на файл ключей внутри шага withCredentials (https://jenkins.io/doc/pipeline/steps/credentials-binding/)

Любые учетные данные, используемые внутри шага withCredentials, будут автоматически маскироваться

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...