You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
110 lines
5.0 KiB
110 lines
5.0 KiB
podTemplate {
|
|
node('pod-templ-jenkins-slave-common') {
|
|
|
|
env.IMAGE_NAME = "${IOT_IMAGES_REGISTRY}/${IOT}/${JOB_NAME}"
|
|
env.IMAGE_NAME_SHORT = "${IOT}/${JOB_NAME}"
|
|
env.SVN_Add = "${SVN_ADDRESS}/AI-Query/trunk/web"
|
|
|
|
stage('Run shell') {
|
|
checkout([$class: 'SubversionSCM', filterChangelog: false, locations: [[cancelProcessOnExternalsFail: true, credentialsId: 'svn-build', depthOption: 'infinity', ignoreExternalsOption: true, local: '.', remote: "${SVN_Add}"]], quietOperation: true, workspaceUpdater: [$class: 'UpdateUpdater']])
|
|
|
|
container('image-builder') {
|
|
sh'''
|
|
find . -depth -name '.svn' -type d -exec rm -rf {} +
|
|
/kaniko/executor --context=${BUILD_WORKSPACE} --dockerfile=./Dockerfile --destination=${IMAGE_NAME}:${IMAGE_VERSION} --cache=false --cleanup
|
|
'''
|
|
}
|
|
|
|
buildName "${IMAGE_NAME_SHORT}:${IMAGE_VERSION}"
|
|
buildDescription "${IMAGE_NAME}:${IMAGE_VERSION}"
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
// podTemplate {
|
|
// node('pod-templ-jenkins-slave-common') {
|
|
// // 阿里云镜像仓库配置 - 根据实际情况修改
|
|
// env.ALIYUN_REGISTRY = "registry.cn-hangzhou.aliyuncs.com"
|
|
// env.ALIYUN_NAMESPACE = "free_sun" // 阿里云容器仓库命名空间
|
|
// env.IMAGE_NAME = "${ALIYUN_REGISTRY}/${ALIYUN_NAMESPACE}/${JOB_NAME}" // 完整镜像名称
|
|
// env.IMAGE_NAME_SHORT = "${ALIYUN_NAMESPACE}/${JOB_NAME}" // 简短镜像名称
|
|
// env.DOCKER_USERNAME='15751773176'
|
|
// env.DOCKER_PASSWORD='223456'
|
|
// env.SVN_Add = "${SVN_ADDRESS}/AI-Query/trunk/web"
|
|
|
|
// // 阿里云仓库认证凭据ID - 需要在Jenkins中预先配置
|
|
// env.ALIYUN_CREDENTIALS_ID = "aliyun-docker-credentials"
|
|
|
|
// stage('拉取代码') {
|
|
// checkout([
|
|
// $class: 'SubversionSCM',
|
|
// filterChangelog: false,
|
|
// locations: [[
|
|
// cancelProcessOnExternalsFail: true,
|
|
// credentialsId: 'svn-build',
|
|
// depthOption: 'infinity',
|
|
// ignoreExternalsOption: true,
|
|
// local: '.',
|
|
// remote: "${SVN_Add}"
|
|
// ]],
|
|
// quietOperation: true,
|
|
// workspaceUpdater: [$class: 'UpdateUpdater']
|
|
// ])
|
|
// }
|
|
|
|
// stage('构建并推送镜像到阿里云仓库') {
|
|
// container('image-builder') {
|
|
// // 使用阿里云凭据进行认证并构建推送镜像
|
|
// // withCredentials([usernamePassword(
|
|
// // credentialsId: "${ALIYUN_CREDENTIALS_ID}",
|
|
// // passwordVariable: 'DOCKER_PASSWORD',
|
|
// // usernameVariable: 'DOCKER_USERNAME'
|
|
// // )]) {
|
|
// sh '''
|
|
// # 清理SVN版本控制文件
|
|
// find . -depth -name '.svn' -type d -exec rm -rf {} +
|
|
|
|
// # 配置kaniko使用阿里云仓库认证
|
|
// # 创建临时目录存储docker配置(解决只读文件系统问题)
|
|
// mkdir -p ${WORKSPACE}/.docker
|
|
// # echo "{\"auths\":{\"${ALIYUN_REGISTRY}\":{\"username\":\"${DOCKER_USERNAME}\",\"password\":\"${DOCKER_PASSWORD}\"}}}" > ${WORKSPACE}/.docker/config.json
|
|
|
|
// docker login ${ALIYUN_REGISTRY} -u ${DOCKER_USERNAME} -p ${DOCKER_PASSWORD}
|
|
|
|
// # 使用kaniko构建并推送到阿里云仓库
|
|
// /kaniko/executor \
|
|
// --context=${BUILD_WORKSPACE} \
|
|
// --dockerfile=./Dockerfile \
|
|
// --destination=${IMAGE_NAME}:${IMAGE_VERSION} \
|
|
// --destination=${IMAGE_NAME}:latest \
|
|
// --cache=false \
|
|
// --cleanup
|
|
// '''
|
|
// // }
|
|
// }
|
|
|
|
// // 设置构建名称和描述
|
|
// buildName "${IMAGE_NAME_SHORT}:${IMAGE_VERSION}"
|
|
// buildDescription "${IMAGE_NAME}:${IMAGE_VERSION}"
|
|
// }
|
|
|
|
// // stage('验证推送结果') {
|
|
// // container('image-builder') {
|
|
// // withCredentials([usernamePassword(
|
|
// // credentialsId: "${ALIYUN_CREDENTIALS_ID}",
|
|
// // passwordVariable: 'DOCKER_PASSWORD',
|
|
// // usernameVariable: 'DOCKER_USERNAME'
|
|
// // )]) {
|
|
// // sh '''
|
|
// // # 验证镜像是否成功推送到阿里云仓库
|
|
// // echo "${DOCKER_PASSWORD}" | docker login ${ALIYUN_REGISTRY} -u ${DOCKER_USERNAME} --password-stdin
|
|
// // docker pull ${IMAGE_NAME}:${IMAGE_VERSION}
|
|
// // docker images | grep ${IMAGE_NAME}
|
|
// // docker logout ${ALIYUN_REGISTRY}
|
|
// // '''
|
|
// // }
|
|
// // }
|
|
// // }
|
|
// }
|
|
// }
|
|
|