我正在使用Kubernetes管道插件在Kubernetes集群之上运行Jenkins
。
我在podTemplate
中使用了一个带有最新google/cloud-sdk
图像的容器。
使用cloud-sdk
将构建的docker映像推送到存储库中。
管道的精简版本:
podTemplate(label: label,
containers: [
containerTemplate(name: 'gcloud', image: 'google/cloud-sdk:latest', command: 'cat', ttyEnabled: true),
],
volumes: [
hostPathVolume(mountPath: '/var/run/docker.sock', hostPath: '/var/run/docker.sock')
]) {
node(label) {
...
stage('Develop deployment') {
container('gcloud') {
withCredentials([file(credentialsId: 'google-service-account-key', variable: 'GOOGLE_APPLICATION_CREDENTIALS')]) {
sh """#!/bin/bash
set -e
# setup gcloud setting
...
docker build --build-arg IMAGE_PREFIX="$GCLOUD_REGION/$GCLOUD_PROJECT" --build-arg TAG=$2 -f $DOCKERFILE -t $1 .
# push image to gcloud
...
"""
}
}
}
}
}
泊坞窗映像使用ARG
为基础映像添加前缀:
ARG IMAGE_PREFIX
ARG TAG
FROM ${IMAGE_PREFIX}/client:${TAG} as some-client
...
docker构建失败,Please provide a source image with
来自prior to commit
。
我已经检查了cloud-sdk
映像中的docker版本以及Kubernetes节点中使用的Docker,它们都是最新的,至少它们比引入此功能的版本新。 (Using ARG
before FROM
)。
这里可能是什么问题?