我需要通过Jenkins构建具有属性集的Docker映像,我还需要将私钥作为参数传递,但是在构建映像时,我正在Jenkins日志中获取私钥。我需要摆脱它,我只需要映像构建日志,任何人都可以在此帮助我
docker build --build-arg SSH_PRIVATE_KEY=$(cat ~/.ssh/id_rsa)-t ${REGISTRY}/${APPLICATION_NAME}:PR-${CHANGE_ID} .
答案 0 :(得分:1)
如@David所述
根本不应该这样将ssh密钥传递到构建序列中
但是要回答您的问题,请修改bash脚本,它不会显示ssh-key的内容。
set +x
docker build --build-arg SSH_PRIVATE_KEY="$(cat ~/.ssh/id_rsa)" -t ssha .
set -x
在构建期间您将看不到ssh_key,但是它将被设置,您可以进行验证
docker run --rm ssha bash -c "cat ~/.ssh/id_rsa"
答案 1 :(得分:0)
尝试使用MaskPasswordWrapper,它将成功屏蔽整个jenkins控制台日志中指定的所有变量。
插件链接:https://wiki.jenkins.io/display/JENKINS/Mask+Passwords+Plugin
script{
san7ket = 'lololol'
wrap([$class: 'MaskPasswordsBuildWrapper', varMaskRegexes: [[regex: '(.)']], varPasswordPairs: [[var: 'sjagtap', var:'a']]]) {
// some block
echo san7ket
echo a
}
}
输出:
[Pipeline] script
[Pipeline] {
[Pipeline] wrap
[Pipeline] {
[Pipeline] echo
********************************************************
[Pipeline] echo
****************************************************************************************
[Pipeline] }
[Pipeline] // wrap
[Pipeline] }
[Pipeline] // script