【发布时间】:2020-09-18 21:54:11
【问题描述】:
我正在使用 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
'''
}
}
当我在 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 似乎有点通过了权限,但随后无法识别标签,留下诸如
之类的错误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 "============================================================================================"
我不确定下一步要做什么,因为似乎文件甚至没有被读取。请指教。
【问题讨论】:
标签: docker-compose dockerfile jenkins-pipeline gradle-kotlin-dsl