无法通过 Jenkins 管道删除 docker 图像
Unable to delete docker image via Jenkins pipeline
我想删除以前构建的图像。我能够获得它的图像 ID,但是每次它点击 docker rmi
命令时作业都会终止。
stage('Clean old Image') {
steps {
script {
def imageName = "${registry}" + "/" + "${branchName}"
env.imageName = "${imageName}"
def oldImageID = sh(
script: 'docker images -qf reference=${imageName}:${imageTag}',
returnStdout: true
)
echo "Image Name: " + "${imageName}"
echo "Old Image: ${oldImageID}"
if ( "${oldImageID}" != '' ) {
echo "Deleting image id: ${oldImageID}..."
sh 'docker rmi -f $oldImageID'
} else {
echo "No image to delete..."
}
}
}
}
阶段日志控制台显示这些错误消息
Shell Script -- docker rmi -f $oldImageID (self time 282ms)
+ docker rmi -f
"docker rmi" requires at least 1 argument.
See 'docker rmi --help'.
Usage: docker rmi [OPTIONS] IMAGE [IMAGE...]
Remove one or more images
但实际上,图像 ID 已经存在,如阶段日志中所示
Print Message -- Old Image: 267848fadb74 (self time 11ms)
Old Image: 267848fadb74
尝试使用 ${oldImageID}
传递 "
而不是 '
sh "docker rmi -f ${oldImageID}"
我想删除以前构建的图像。我能够获得它的图像 ID,但是每次它点击 docker rmi
命令时作业都会终止。
stage('Clean old Image') {
steps {
script {
def imageName = "${registry}" + "/" + "${branchName}"
env.imageName = "${imageName}"
def oldImageID = sh(
script: 'docker images -qf reference=${imageName}:${imageTag}',
returnStdout: true
)
echo "Image Name: " + "${imageName}"
echo "Old Image: ${oldImageID}"
if ( "${oldImageID}" != '' ) {
echo "Deleting image id: ${oldImageID}..."
sh 'docker rmi -f $oldImageID'
} else {
echo "No image to delete..."
}
}
}
}
阶段日志控制台显示这些错误消息
Shell Script -- docker rmi -f $oldImageID (self time 282ms) + docker rmi -f "docker rmi" requires at least 1 argument. See 'docker rmi --help'. Usage: docker rmi [OPTIONS] IMAGE [IMAGE...] Remove one or more images
但实际上,图像 ID 已经存在,如阶段日志中所示
Print Message -- Old Image: 267848fadb74 (self time 11ms) Old Image: 267848fadb74
尝试使用 ${oldImageID}
"
而不是 '
sh "docker rmi -f ${oldImageID}"