我有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管道中的控制台上打印。
我如何停止在控制台上打印凭证?
答案 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步骤中使用的任何凭据都会被自动屏蔽