Dict.CN 在线词典, 英语学习, 在线翻译 ------------- MyGitee My腾云code My51cto

Happy_EveryDay

可以平凡 不可以平庸 无爱则无忧,无欲则无求,无怒而无敌,无怨才是佛。所有烦恼,都是放不下的执著 开源技群 328035181 MyGitee

博客园 首页 新随笔 管理

 

1、配置

image

 

image

 

apiVersion: v1
kind: Pod
spec:
containers:
- name: maven
image: maven:3.8-openjdk-11
command: ['cat']
tty: true
volumeMounts:
- name: workspace-volume
mountPath: /home/jenkins/agent
- name: kubectl
image: swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/bitnami/kubectl:1.28
command: ['sleep', 'infinity']
tty: true
stdin: true
securityContext:
runAsUser: 0 # ← 新增:以 root 运行,保证可写 workspace
resources:
requests:
cpu: 100m
memory: 128Mi
volumeMounts:
- name: workspace-volume
mountPath: /home/jenkins/agent
- name: docker
image: swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/docker:24-cli
command: ['cat']
resources:
requests:
cpu: 200m
memory: 512Mi
tty: true
volumeMounts:
- name: docker-sock
mountPath: /var/run/docker.sock
- name: workspace-volume
mountPath: /home/jenkins/agent
volumes:
- name: docker-sock
hostPath:
path: /var/run/docker.sock
- name: workspace-volume
emptyDir: {}


image


environment {
DOCKER_CREDENTIAL_ID = 'harbor-admin-id'
REGISTRY = '192.168.91.164'
DOCKERHUB_NAMESPACE = 'ruoyi'
APP_NAME = 'ruoyi-auth'
}


 

 

2、克隆

image

 

 

3、编译

image

 

4、打镜像

image

 

image

 

image

 

image

 

6、推镜像

image

 

image

 

image

 

image

 

7、部署

image

 

image

 

image

 

image

 

 

8、测试

image

 

image

 

 

image

 

 

9、Jenkinsfile

脚本

 

pipeline {
agent {
kubernetes {
yaml '''apiVersion: v1
kind: Pod
spec:
containers:
- name: maven
image: maven:3.8-openjdk-11
command: ['cat']
tty: true
volumeMounts:
- name: workspace-volume
mountPath: /home/jenkins/agent
- name: kubectl
image: swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/bitnami/kubectl:1.28
command: ['sleep', 'infinity']
tty: true
stdin: true
securityContext:
runAsUser: 0 # ← 新增:以 root 运行,保证可写 workspace
resources:
requests:
cpu: 100m
memory: 128Mi
volumeMounts:
- name: workspace-volume
mountPath: /home/jenkins/agent
- name: docker
image: swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/docker:24-cli
command: ['cat']
resources:
requests:
cpu: 200m
memory: 512Mi
tty: true
volumeMounts:
- name: docker-sock
mountPath: /var/run/docker.sock
- name: workspace-volume
mountPath: /home/jenkins/agent
volumes:
- name: docker-sock
hostPath:
path: /var/run/docker.sock
- name: workspace-volume
emptyDir: {}'''
defaultContainer 'maven'
}

}
stages {
stage('克隆代码') {
agent none
steps {
container('maven') {
git(url: ' https://gitee.com/smallfa/RuoYi-Cloud.git', credentialsId: '', branch: 'master', changelog: true, poll: false)
}

}
}

stage('项目编译打包') {
agent none
steps {
container('maven') {
sh 'ls -l'
sh 'mvn package'
}

}
}

stage('xky6j0') {
parallel {
stage('1 构建ruoyi-auth镜像') {
agent none
steps {
container('docker') {
sh 'ls ruoyi-auth -l'
sh 'DOCKER_BUILDKIT=0 docker build -t ruoyi-auth:latest -f ruoyi-auth/dockerfile ruoyi-auth'
}

}
}

stage('3 构建ruoyi-gateway镜像') {
agent none
steps {
container('docker') {
sh 'ls ruoyi-gateway -l'
sh 'DOCKER_BUILDKIT=0 docker build -t ruoyi-gateway:latest -f ruoyi-gateway/dockerfile ruoyi-gateway'
}

}
}

stage('6 构建ruoyi-system镜像') {
agent none
steps {
container('docker') {
sh 'ls ruoyi-modules/ruoyi-system -l'
sh 'DOCKER_BUILDKIT=0 docker build -t ruoyi-system:latest -f ruoyi-modules/ruoyi-system/dockerfile ruoyi-modules/ruoyi-system'
}

}
}

}
}

stage('qn27q1') {
parallel {
stage('1.推送ruoyi-auth镜像') {
agent none
steps {
withCredentials([usernamePassword(credentialsId: 'harbor-admin-id', passwordVariable: 'harbor_pwd', usernameVariable: 'harbor_user')]) {
container('docker') {
sh 'docker login ${REGISTRY} -u ${harbor_user} -p ${harbor_pwd}'
sh 'docker tag ruoyi-auth:latest $REGISTRY/$DOCKERHUB_NAMESPACE/ruoyi-auth:SNAPSHOT-$BUILD_NUMBER'
sh 'docker push $REGISTRY/$DOCKERHUB_NAMESPACE/ruoyi-auth:SNAPSHOT-$BUILD_NUMBER'
sh 'docker logout ${REGISTRY}'
}

}

}
}

stage('3.推送ruoyi-gateway镜像') {
agent none
steps {
withCredentials([usernamePassword(credentialsId: 'harbor-admin-id', passwordVariable: 'harbor_pwd', usernameVariable: 'harbor_user')]) {
container('docker') {
sh 'docker login ${REGISTRY} -u ${harbor_user} -p ${harbor_pwd}'
sh 'docker tag ruoyi-gateway:latest ${REGISTRY}/${DOCKERHUB_NAMESPACE}/ruoyi-gateway:SNAPSHOT-${BUILD_NUMBER}'
sh 'docker push ${REGISTRY}/${DOCKERHUB_NAMESPACE}/ruoyi-gateway:SNAPSHOT-${BUILD_NUMBER}'
sh 'docker logout ${REGISTRY}'
}

}

}
}

stage('6.推送ruoyi-system镜像') {
agent none
steps {
withCredentials([usernamePassword(credentialsId: 'harbor-admin-id', passwordVariable: 'harbor_pwd', usernameVariable: 'harbor_user')]) {
container('docker') {
sh 'docker login ${REGISTRY} -u ${harbor_user} -p ${harbor_pwd}'
sh 'docker tag ruoyi-system:latest ${REGISTRY}/${DOCKERHUB_NAMESPACE}/ruoyi-system:SNAPSHOT-${BUILD_NUMBER}'
sh 'docker push ${REGISTRY}/${DOCKERHUB_NAMESPACE}/ruoyi-system:SNAPSHOT-${BUILD_NUMBER}'
sh 'docker logout ${REGISTRY}'
}

}

}
}

}
}

stage('nfvww6') {
parallel {
stage('2.部署ruoyi-system服务') {
agent none
steps {
container('kubectl') {
withCredentials([kubeconfigContent(credentialsId: 'demo-kubeconfig', variable: 'KUBECONFIG_CONFIG')]) {
sh 'mkdir -p ~/.kube/'
sh 'echo "$KUBECONFIG_CONFIG" > ~/.kube/config'
sh 'envsubst < ruoyi-modules/ruoyi-system/deploy/deploy.yml | kubectl apply -f -'
}

}

}
}

stage('4.部署ruoyi-gateway服务') {
agent none
steps {
container('kubectl') {
withCredentials([kubeconfigContent(credentialsId: 'demo-kubeconfig', variable: 'KUBECONFIG_CONFIG')]) {
sh 'mkdir -p ~/.kube/'
sh 'echo "$KUBECONFIG_CONFIG" > ~/.kube/config'
sh 'envsubst < ruoyi-gateway/deploy/deploy.yml | kubectl apply -f -'
}

}

}
}

stage('6.部署ruoyi-auth服务') {
agent none
steps {
container('kubectl') {
withCredentials([kubeconfigContent(credentialsId: 'demo-kubeconfig', variable: 'KUBECONFIG_CONFIG')]) {
sh 'mkdir -p ~/.kube/'
sh 'echo "$KUBECONFIG_CONFIG" > ~/.kube/config'
sh 'envsubst < ruoyi-auth/deploy/deploy.yml | kubectl apply -f -'
}

}

}
}

}
}

stage('deploy to production') {
steps {
container('maven') {
input(id: 'deploy-to-production', message: 'deploy to production?')
withCredentials([kubeconfigContent(credentialsId : 'KUBECONFIG_CREDENTIAL_ID' ,variable : 'KUBECONFIG_CONFIG' ,)]) {
sh 'mkdir -p ~/.kube/'
sh 'echo "$KUBECONFIG_CONFIG" > ~/.kube/config'
sh 'envsubst < deploy/prod-ol/deploy.yaml | kubectl apply -f -'
}

}

}
}

}
environment {
DOCKER_CREDENTIAL_ID = 'harbor-admin-id'
REGISTRY = '192.168.91.164'
DOCKERHUB_NAMESPACE = 'ruoyi'
APP_NAME = 'ruoyi-auth'
}
parameters {
string(name: 'TAG_NAME', defaultValue: '', description: '')
}
}

 

posted on 2026-10-11 16:41  2026cn  阅读(2)  评论(0)    收藏  举报