Jenkins流水线不构建Docker脚本。

16 浏览
0 Comments

Jenkins流水线不构建Docker脚本。

我正在使用 Jenkinsfile 和 Docker 构建一个流水线。Build 阶段运行一个构建 Dockerfile 的脚本。

当我在 Jenkins 上运行时,出现了以下错误:

+ COMMIT=b64ccfbe0d..............

+ ./docker_build.sh 123asdc

/root/.jenkins/workspace/nameofproj/durable-c87f882c/script.sh: line 3: ./docker_build.sh: Permission denied

script returned exit code 1

我查看了多个类似问题(1,2,3),解决了类似的权限问题。

我尝试过的解决方案是在 Jenkinsfile 中使用 "git update-index --chmod=+x",这似乎在权限方面有所进展,但是无法识别 Tag,导致出现以下错误:

error: 0852ac1: does not exist and --remove not passed

fatal: Unable to process path

build_docker.sh 的内容如下:

#!/usr/bin/env bash

TAG=$1

VCS_URL=`cat Dockerfile | grep "ARG VCS_URL" | sed $SEDFLAG 's/[^0-9.]//g'`

VERSION=`awk '/version =/{print $3;exit;}' "build.gradle.kts"`

IMAGE_VERSION=`sed -e 's/^"//' -e 's/"$//' <<<"${VERSION}"`

echo "============================================================================================"

echo " Building docker { NAME:"${NAME}", IMAGE_VERSION:"${IMAGE_VERSION}", TAG:"${TAG}" "

echo "============================================================================================"

我不确定接下来该怎么做,因为似乎文件甚至没有被读取。请给予指导。

0
0 Comments

Jenkins pipeline无法构建Docker脚本的问题,可能是由于执行权限不足所导致。解决方法是在执行shell脚本之前运行以下命令:sh 'chmod +x docker_build.sh'。之前提到的两个答案与此问题无关,它们与Docker守护进程套接字权限有关。你面临的问题是执行权限问题,我猜测最有可能的原因是如此。我之前也遇到过类似的问题,并通过运行上述命令来解决了问题。

0