Docker compose 詹金斯管道公司不';t构建docker脚本

Docker compose 詹金斯管道公司不';t构建docker脚本,docker-compose,dockerfile,jenkins-pipeline,gradle-kotlin-dsl,Docker Compose,Dockerfile,Jenkins Pipeline,Gradle Kotlin Dsl,我正在用Jenkinsfile和Docker构建一条管道。构建阶段构建并运行一个脚本来构建docker文件 stage('Build') { steps { echo 'Building Image...' sh '''COMMIT="$(git log --format="%H" -n 1)" TAG=${COMMIT:0:7} ./docker_build.sh $TAG ''' }

我正在用Jenkinsfile和Docker构建一条管道。构建阶段构建并运行一个脚本来构建docker文件

    stage('Build') {
      steps {
        echo 'Building Image...'
        sh '''COMMIT="$(git log --format="%H" -n 1)"
TAG=${COMMIT:0:7}
./docker_build.sh $TAG
'''
      }
    }
当我在詹金斯身上运行时,我得到了这个错误

+ 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 
我已经研究了许多其他问题(,),其中解决了类似的权限问题。 我尝试的解决方案是: git update index--chmod=+x在Jenkins文件中,该文件似乎通过了权限,但没有识别出标记,留下了如下错误

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 "============================================================================================"
#/usr/bin/env bash
标签=$1
VCS_URL=`cat Dockerfile | grep“ARG VCS_URL”| sed$sedsflag的//[^0-9.]//g'`
VERSION=`awk'/VERSION=/{print$3;exit;}'build.gradle.kts`

IMAGE_VERSION=`sed-e's/^//'-e's/“$/'在执行shell脚本之前,请尝试运行此命令:

sh'chmod+x docker\u build.sh'

前两个相关答案与您遇到的问题无关,它们与docker daemon套接字权限有关。 您在这里面临的问题是执行权限,我想,我很可能不确定,但我有一个类似的问题,通过运行上面提到的命令解决了这个问题