Docker 詹金斯赢了';在变量替换之后不要使用参数
我正在尝试使用一个与GEM文件的SHA相关的变量。问题是,当我在sh命令中使用它时,其他参数将不会被解释。 例如:Docker 詹金斯赢了';在变量替换之后不要使用参数,docker,shell,jenkins,jenkins-pipeline,Docker,Shell,Jenkins,Jenkins Pipeline,我正在尝试使用一个与GEM文件的SHA相关的变量。问题是,当我在sh命令中使用它时,其他参数将不会被解释。 例如: docker build ${VAR} . 将导致一个错误,指出“docker build”恰好需要1个参数,因为命令的“.”未被解释 下面是尝试提取图像、构建图像并发布图像的代码: def GEMFILE_SHA = "" pipeline { ..... stages { stage("Build Docker Imag
docker build ${VAR} .
将导致一个错误,指出“docker build”恰好需要1个参数,因为命令的“.”未被解释
下面是尝试提取图像、构建图像并发布图像的代码:
def GEMFILE_SHA = ""
pipeline {
.....
stages {
stage("Build Docker Image and Push to Artifactory - Snapshot Repository") {
steps {
container("docker") {
script {
GEMFILE_SHA = sh(returnStdout: true, script: "sha256sum Gemfile | cut -d ' ' -f1 | head -n1", label: "Set Gemfile sha")
}
sh script: "docker login -u ${DOCKER_REGISTRY_CREDS_USR} -p ${DOCKER_REGISTRY_CREDS_PSW} ${DOCKER_REGISTRY_URL}", label: "Docker Login."
catchError(buildResult: 'SUCCESS', stageResult: 'SUCCESS') {
sh script: "docker pull ${DOCKER_REGISTRY_URL}/${DOCKER_REPO}:${GEMFILE_SHA}", label: "Pull Cached Image."
}
sh script: "docker build --network=host --no-cache -t ${DOCKER_REGISTRY_URL}/${DOCKER_REPO}:${GEMFILE_SHA} .", label: "Build Docker Image."
sh script: "docker push ${DOCKER_REGISTRY_URL}/${DOCKER_REPO}:${GEMFILE_SHA}", label: "Push Docker Image."
}
}
}
}
}
}
在build和--network之间有两个空格
docker build--network
。请删除它们并尝试重新编译无效:(使用docker build…-f Dockerfile