无法运行镜像 docker.io/hadolint/hadolint:v2.8.0 。错误:docker:来自守护进程的错误响应:无法为容器创建任务:无法创建 shim 任务:OCI 运行时创建失败:运行 c 创建失败:无法启动容器进程:exec:“cat”:$ 中找不到可执行文件路径:未知。
但是当我将“docker.io/hadolint/hadolint:v2.8.0”更改为版本“docker.io/hadolint/hadolint:v1.18.0”时
,没有错误
这是我的 Jenkins 管道,
stage("Lint") {
agent {
docker {
image "docker.io/hadolint/hadolint:v2.8.0"
reuseNode true
}
}
steps {
script {
def result = sh label: "Lint Dockerfile",
script: """\
hadolint Dockerfile > hadolint-results.txt
""",
returnStatus: true
if (result > 0) {
unstable(message: "Linting issues found")
}
}
}
}
Jenkins 中的 docker 插件尝试在容器中启动
cat
,以在执行脚本时保持容器运行。
:v2.8.0
图像中没有 cat
(它是临时图像),因此无法以相同的方式在 Jenkins 中运行。
正确的解决方案取决于您的 Jenkins 版本和 docker 插件。