如何停止在Jenkins控制台上打印服务帐户凭据?

时间:2019-05-29 12:55:47

标签: jenkins google-container-registry

我有Jenkins服务器,用于构建项目,构建docker映像并将其推送到Google Container Registry。

我正在使用服务帐户登录here,使用命令if(input[n]%2) odd.push_back(input[n]); else even.push_back(input[n]); 登录到GCR

执行此行时,service-account.json文件的内容会在Jenkins管道中的控制台上打印。

我如何停止在控制台上打印凭证?

2 个答案:

答案 0 :(得分:1)

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

  

使用STDIN提供密码。要以非交互方式运行docker login命令,可以设置--password-stdin标志以通过STDIN提供密码。 使用STDIN可以防止密码出现在Shell的历史记录或日志文件中。

请参见https://docs.docker.com/engine/reference/commandline/login/

注意:密码文件应仅包含密码,并且不应进行json编码。

答案 1 :(得分:0)

如果您将JSON密钥文件和与其关联的用户名作为凭证存储在Jenkins中,则可以在withCredentials步骤(https://jenkins.io/doc/pipeline/steps/credentials-binding/)内引用密钥文件

withCredentials步骤中使用的任何凭据都会被自动屏蔽