From e33edde984b181ce6742aaa676bd44298c1e1bf6 Mon Sep 17 00:00:00 2001 From: huhongtao <1850071046@qq.com> Date: Thu, 8 Sep 2022 01:08:03 +0000 Subject: [PATCH] =?UTF-8?q?devops=E7=9B=B8=E5=85=B3=E6=96=87=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: huhongtao <1850071046@qq.com> --- Devops/backups/Dockerfile | 19 +++++ Devops/backups/deploy/deploy.yml | 66 +++++++++++++++++ Devops/backups/ruoyi-auth-jenkinsfile | 78 ++++++++++++++++++++ Devops/backups/ruoyi-flie-jenkinsfile | 78 ++++++++++++++++++++ Devops/backups/ruoyi-gateway-jenkinsfile | 78 ++++++++++++++++++++ Devops/backups/ruoyi-gen-jenkinsfile | 78 ++++++++++++++++++++ Devops/backups/ruoyi-job-jenkinsfile | 78 ++++++++++++++++++++ Devops/backups/ruoyi-monitor-jenkinsfile | 78 ++++++++++++++++++++ Devops/backups/ruoyi-system-jenkinsfile | 78 ++++++++++++++++++++ Devops/backups/ruoyi-ui-jenkinsfile | 81 +++++++++++++++++++++ Devops/ruoyi-auth/Dockerfile | 19 +++++ Devops/ruoyi-auth/Jenkinsfile | 78 ++++++++++++++++++++ Devops/ruoyi-auth/deploy/deploy.yml | 66 +++++++++++++++++ Devops/ruoyi-gateway/Dockerfile | 13 ++++ Devops/ruoyi-gateway/Jenkinsfile | 78 ++++++++++++++++++++ Devops/ruoyi-gateway/deploy/deploy.yml | 66 +++++++++++++++++ Devops/ruoyi-modules/ruoyi-file/Dockerfile | 13 ++++ Devops/ruoyi-modules/ruoyi-file/Jenkinsfile | 78 ++++++++++++++++++++ Devops/ruoyi-ui/Dockerfile | 15 ++++ Devops/ruoyi-ui/Jenkinsfile | 81 +++++++++++++++++++++ 20 files changed, 1219 insertions(+) create mode 100644 Devops/backups/Dockerfile create mode 100644 Devops/backups/deploy/deploy.yml create mode 100644 Devops/backups/ruoyi-auth-jenkinsfile create mode 100644 Devops/backups/ruoyi-flie-jenkinsfile create mode 100644 Devops/backups/ruoyi-gateway-jenkinsfile create mode 100644 Devops/backups/ruoyi-gen-jenkinsfile create mode 100644 Devops/backups/ruoyi-job-jenkinsfile create mode 100644 Devops/backups/ruoyi-monitor-jenkinsfile create mode 100644 Devops/backups/ruoyi-system-jenkinsfile create mode 100644 Devops/backups/ruoyi-ui-jenkinsfile create mode 100644 Devops/ruoyi-auth/Dockerfile create mode 100644 Devops/ruoyi-auth/Jenkinsfile create mode 100644 Devops/ruoyi-auth/deploy/deploy.yml create mode 100644 Devops/ruoyi-gateway/Dockerfile create mode 100644 Devops/ruoyi-gateway/Jenkinsfile create mode 100644 Devops/ruoyi-gateway/deploy/deploy.yml create mode 100644 Devops/ruoyi-modules/ruoyi-file/Dockerfile create mode 100644 Devops/ruoyi-modules/ruoyi-file/Jenkinsfile create mode 100644 Devops/ruoyi-ui/Dockerfile create mode 100644 Devops/ruoyi-ui/Jenkinsfile diff --git a/Devops/backups/Dockerfile b/Devops/backups/Dockerfile new file mode 100644 index 00000000..79167714 --- /dev/null +++ b/Devops/backups/Dockerfile @@ -0,0 +1,19 @@ +FROM openjdk:8-jdk +LABEL maintainer=huhongtao + + +#docker run -e PARAMS="--server.port 9090" +# server.port 启动端口 +# 覆盖bootstrap。yml文件的内容,意思为去nacos中寻找 ruoyi-auth-prod.yml配置文件 +# spring.cloud.nacos.discovery.server-addr=ruoyi-nacos.ruoyi:8848 注册中心地址 +# spring.cloud.nacos.config.server-addr=ruoyi-nacos.ruoyi:8848 配置中心地址 +# spring.cloud.nacos.config.namespace nacos配置文件所属命名空间 +# spring.cloud.nacos.config.file-extension=yml 配置文件后缀名,类型 +ENV PARAMS="--server.port=8080 --spring.profiles.active=prod --spring.cloud.nacos.discovery.server-addr=ruoyi-nacos.ruoyi:8848 --spring.cloud.nacos.config.server-addr=ruoyi-nacos.ruoyi:8848 --spring.cloud.nacos.config.namespace=prod --spring.cloud.nacos.config.file-extension=yml" +RUN /bin/cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo 'Asia/Shanghai' >/etc/timezone + +COPY target/*.jar /app.jar +EXPOSE 8080 + +# +ENTRYPOINT ["/bin/sh","-c","java -Dfile.encoding=utf8 -Djava.security.egd=file:/dev/./urandom -jar app.jar ${PARAMS}"] \ No newline at end of file diff --git a/Devops/backups/deploy/deploy.yml b/Devops/backups/deploy/deploy.yml new file mode 100644 index 00000000..d7cb1810 --- /dev/null +++ b/Devops/backups/deploy/deploy.yml @@ -0,0 +1,66 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + labels: + app: ruoyi-auth + name: ruoyi-auth + namespace: ruoyi #一定要写名称空间 +spec: + progressDeadlineSeconds: 600 + replicas: 1 + selector: + matchLabels: + app: ruoyi-auth + strategy: + rollingUpdate: + maxSurge: 50% + maxUnavailable: 50% + type: RollingUpdate + template: + metadata: + labels: + app: ruoyi-auth + spec: + imagePullSecrets: + - name: harbor-docker-hub #提前在项目下配置访问阿里云的账号密码 + containers: + - image: $REGISTRY/$HARBOR_NAMESPACE/ruoyi-auth:SNAPSHOT-$BUILD_NUMBER + # readinessProbe: + # httpGet: + # path: /actuator/health + # port: 8080 + # timeoutSeconds: 10 + # failureThreshold: 30 + # periodSeconds: 5 + imagePullPolicy: Always + name: app + ports: + - containerPort: 8080 + protocol: TCP + resources: + limits: + cpu: 300m + memory: 600Mi + terminationMessagePath: /dev/termination-log + terminationMessagePolicy: File + dnsPolicy: ClusterFirst + restartPolicy: Always + terminationGracePeriodSeconds: 30 +--- +apiVersion: v1 +kind: Service +metadata: + labels: + app: ruoyi-auth + name: ruoyi-auth + namespace: ruoyi +spec: + ports: + - name: http + port: 8080 + protocol: TCP + targetPort: 8080 + selector: + app: ruoyi-auth + sessionAffinity: None + type: ClusterIP \ No newline at end of file diff --git a/Devops/backups/ruoyi-auth-jenkinsfile b/Devops/backups/ruoyi-auth-jenkinsfile new file mode 100644 index 00000000..731884a3 --- /dev/null +++ b/Devops/backups/ruoyi-auth-jenkinsfile @@ -0,0 +1,78 @@ +pipeline { + agent { + node { + label 'maven' + } + + } + stages { + stage('拉取代码') { + agent none + steps { + container('maven') { + git(url: 'https://gitee.com/hongtaohu/RuoYi-Cloud.git', credentialsId: 'gitee-id', branch: 'master', changelog: true, poll: false) + sh 'ls -al' + } + + } + } + + stage('项目编译') { + agent none + steps { + container('maven') { + sh 'ls -al' + sh 'mvn clean package -Dmaven.test.skip=true' + } + + } + } + + stage('构建ruoyi-auth镜像') { + agent none + steps { + container('maven') { + sh 'ls ruoyi-auth/target' + sh 'docker build -t ruoyi-auth:latest -f ruoyi-auth/Dockerfile ./ruoyi-auth/' + } + + } + } + + stage('推送ruoyi-auth镜像') { + agent none + steps { + container('maven') { + withCredentials([usernamePassword(credentialsId : 'harbor-registry' ,passwordVariable : 'HARBOR_PWD_TEXT' ,usernameVariable : 'HARBOR_USER_TEXT' ,)]) { + sh 'echo "$HARBOR_PWD_TEXT" | docker login $REGISTRY -u "$HARBOR_USER_TEXT" --password-stdin' + sh 'docker tag ruoyi-auth:latest $REGISTRY/$HARBOR_NAMESPACE/ruoyi-auth:SNAPSHOT-$BUILD_NUMBER' + sh 'docker push $REGISTRY/$HARBOR_NAMESPACE/ruoyi-auth:SNAPSHOT-$BUILD_NUMBER' + } + + } + + } + } + + stage('部署ruoyi-auth到dev环境') { + agent none + steps { + kubernetesDeploy(configs: 'ruoyi-auth/deploy/**', enableConfigSubstitution: true, kubeconfigId: "$KUBECONFIG_CREDENTIAL_ID") + } + } + + } + environment { + DOCKER_CREDENTIAL_ID = 'dockerhub-id' + GITHUB_CREDENTIAL_ID = 'github-id' + KUBECONFIG_CREDENTIAL_ID = 'demo-kubeconfig' + REGISTRY = '192.168.2.147:30002' + DOCKERHUB_NAMESPACE = 'docker_username' + GITHUB_ACCOUNT = 'kubesphere' + APP_NAME = 'devops-java-sample' + HARBOR_NAMESPACE = 'ruoyi' + } + parameters { + string(name: 'TAG_NAME', defaultValue: '', description: '') + } +} \ No newline at end of file diff --git a/Devops/backups/ruoyi-flie-jenkinsfile b/Devops/backups/ruoyi-flie-jenkinsfile new file mode 100644 index 00000000..958b005d --- /dev/null +++ b/Devops/backups/ruoyi-flie-jenkinsfile @@ -0,0 +1,78 @@ +pipeline { + agent { + node { + label 'maven' + } + + } + stages { + stage('拉取代码') { + agent none + steps { + container('maven') { + git(url: 'https://gitee.com/hongtaohu/RuoYi-Cloud.git', credentialsId: 'gitee-id', branch: 'master', changelog: true, poll: false) + sh 'ls -al' + } + + } + } + + stage('项目编译') { + agent none + steps { + container('maven') { + sh 'ls -al' + sh 'mvn clean package -Dmaven.test.skip=true' + } + + } + } + + stage('构建ruoyi-file镜像') { + agent none + steps { + container('maven') { + sh 'ls ruoyi-modules/ruoyi-file/target' + sh 'docker build -t ruoyi-file:latest -f ruoyi-modules/ruoyi-file/Dockerfile ./ruoyi-modules/ruoyi-file/' + } + + } + } + + stage('推送ruoyi-file镜像') { + agent none + steps { + container('maven') { + withCredentials([usernamePassword(credentialsId : 'harbor-registry' ,passwordVariable : 'HARBOR_PWD_TEXT' ,usernameVariable : 'HARBOR_USER_TEXT' ,)]) { + sh 'echo "$HARBOR_PWD_TEXT" | docker login $REGISTRY -u "$HARBOR_USER_TEXT" --password-stdin' + sh 'docker tag ruoyi-file:latest $REGISTRY/$HARBOR_NAMESPACE/ruoyi-file:SNAPSHOT-$BUILD_NUMBER' + sh 'docker push $REGISTRY/$HARBOR_NAMESPACE/ruoyi-file:SNAPSHOT-$BUILD_NUMBER' + } + + } + + } + } + + stage('部署ruoyi-file到dev环境') { + agent none + steps { + kubernetesDeploy(configs: 'ruoyi-modules/ruoyi-file/deploy/**', enableConfigSubstitution: true, kubeconfigId: "$KUBECONFIG_CREDENTIAL_ID") + } + } + + } + environment { + DOCKER_CREDENTIAL_ID = 'dockerhub-id' + GITHUB_CREDENTIAL_ID = 'github-id' + KUBECONFIG_CREDENTIAL_ID = 'demo-kubeconfig' + REGISTRY = '192.168.2.147:30002' + DOCKERHUB_NAMESPACE = 'docker_username' + GITHUB_ACCOUNT = 'kubesphere' + APP_NAME = 'devops-java-sample' + HARBOR_NAMESPACE = 'ruoyi' + } + parameters { + string(name: 'TAG_NAME', defaultValue: '', description: '') + } +} \ No newline at end of file diff --git a/Devops/backups/ruoyi-gateway-jenkinsfile b/Devops/backups/ruoyi-gateway-jenkinsfile new file mode 100644 index 00000000..114630dd --- /dev/null +++ b/Devops/backups/ruoyi-gateway-jenkinsfile @@ -0,0 +1,78 @@ +pipeline { + agent { + node { + label 'maven' + } + + } + stages { + stage('拉取代码') { + agent none + steps { + container('maven') { + git(url: 'https://gitee.com/hongtaohu/RuoYi-Cloud.git', credentialsId: 'gitee-id', branch: 'master', changelog: true, poll: false) + sh 'ls -al' + } + + } + } + + stage('项目编译') { + agent none + steps { + container('maven') { + sh 'ls -al' + sh 'mvn clean package -Dmaven.test.skip=true' + } + + } + } + + stage('构建ruoyi-gateway镜像') { + agent none + steps { + container('maven') { + sh 'ls ruoyi-gateway/target' + sh 'docker build -t ruoyi-gateway:latest -f ruoyi-gateway/Dockerfile ./ruoyi-gateway/' + } + + } + } + + stage('推送ruoyi-gateway镜像') { + agent none + steps { + container('maven') { + withCredentials([usernamePassword(credentialsId : 'harbor-registry' ,passwordVariable : 'HARBOR_PWD_TEXT' ,usernameVariable : 'HARBOR_USER_TEXT' ,)]) { + sh 'echo "$HARBOR_PWD_TEXT" | docker login $REGISTRY -u "$HARBOR_USER_TEXT" --password-stdin' + sh 'docker tag ruoyi-gateway:latest $REGISTRY/$HARBOR_NAMESPACE/ruoyi-gateway:SNAPSHOT-$BUILD_NUMBER' + sh 'docker push $REGISTRY/$HARBOR_NAMESPACE/ruoyi-gateway:SNAPSHOT-$BUILD_NUMBER' + } + + } + + } + } + + stage('部署ruoyi-gateway到dev环境') { + agent none + steps { + kubernetesDeploy(configs: 'ruoyi-gateway/deploy/**', enableConfigSubstitution: true, kubeconfigId: "$KUBECONFIG_CREDENTIAL_ID") + } + } + + } + environment { + DOCKER_CREDENTIAL_ID = 'dockerhub-id' + GITHUB_CREDENTIAL_ID = 'github-id' + KUBECONFIG_CREDENTIAL_ID = 'demo-kubeconfig' + REGISTRY = '192.168.2.147:30002' + DOCKERHUB_NAMESPACE = 'docker_username' + GITHUB_ACCOUNT = 'kubesphere' + APP_NAME = 'devops-java-sample' + HARBOR_NAMESPACE = 'ruoyi' + } + parameters { + string(name: 'TAG_NAME', defaultValue: '', description: '') + } +} \ No newline at end of file diff --git a/Devops/backups/ruoyi-gen-jenkinsfile b/Devops/backups/ruoyi-gen-jenkinsfile new file mode 100644 index 00000000..2f118d5c --- /dev/null +++ b/Devops/backups/ruoyi-gen-jenkinsfile @@ -0,0 +1,78 @@ +pipeline { + agent { + node { + label 'maven' + } + + } + stages { + stage('拉取代码') { + agent none + steps { + container('maven') { + git(url: 'https://gitee.com/hongtaohu/RuoYi-Cloud.git', credentialsId: 'gitee-id', branch: 'master', changelog: true, poll: false) + sh 'ls -al' + } + + } + } + + stage('项目编译') { + agent none + steps { + container('maven') { + sh 'ls -al' + sh 'mvn clean package -Dmaven.test.skip=true' + } + + } + } + + stage('构建ruoyi-gen镜像') { + agent none + steps { + container('maven') { + sh 'ls ruoyi-modules/ruoyi-gen/target' + sh 'docker build -t ruoyi-gen:latest -f ruoyi-modules/ruoyi-gen/Dockerfile ./ruoyi-modules/ruoyi-gen/' + } + + } + } + + stage('推送ruoyi-gen镜像') { + agent none + steps { + container('maven') { + withCredentials([usernamePassword(credentialsId : 'harbor-registry' ,passwordVariable : 'HARBOR_PWD_TEXT' ,usernameVariable : 'HARBOR_USER_TEXT' ,)]) { + sh 'echo "$HARBOR_PWD_TEXT" | docker login $REGISTRY -u "$HARBOR_USER_TEXT" --password-stdin' + sh 'docker tag ruoyi-gen:latest $REGISTRY/$HARBOR_NAMESPACE/ruoyi-gen:SNAPSHOT-$BUILD_NUMBER' + sh 'docker push $REGISTRY/$HARBOR_NAMESPACE/ruoyi-gen:SNAPSHOT-$BUILD_NUMBER' + } + + } + + } + } + + stage('部署ruoyi-gen到dev环境') { + agent none + steps { + kubernetesDeploy(configs: 'ruoyi-modules/ruoyi-gen/deploy/**', enableConfigSubstitution: true, kubeconfigId: "$KUBECONFIG_CREDENTIAL_ID") + } + } + + } + environment { + DOCKER_CREDENTIAL_ID = 'dockerhub-id' + GITHUB_CREDENTIAL_ID = 'github-id' + KUBECONFIG_CREDENTIAL_ID = 'demo-kubeconfig' + REGISTRY = '192.168.2.147:30002' + DOCKERHUB_NAMESPACE = 'docker_username' + GITHUB_ACCOUNT = 'kubesphere' + APP_NAME = 'devops-java-sample' + HARBOR_NAMESPACE = 'ruoyi' + } + parameters { + string(name: 'TAG_NAME', defaultValue: '', description: '') + } +} \ No newline at end of file diff --git a/Devops/backups/ruoyi-job-jenkinsfile b/Devops/backups/ruoyi-job-jenkinsfile new file mode 100644 index 00000000..9ef1b1e2 --- /dev/null +++ b/Devops/backups/ruoyi-job-jenkinsfile @@ -0,0 +1,78 @@ +pipeline { + agent { + node { + label 'maven' + } + + } + stages { + stage('拉取代码') { + agent none + steps { + container('maven') { + git(url: 'https://gitee.com/hongtaohu/RuoYi-Cloud.git', credentialsId: 'gitee-id', branch: 'master', changelog: true, poll: false) + sh 'ls -al' + } + + } + } + + stage('项目编译') { + agent none + steps { + container('maven') { + sh 'ls -al' + sh 'mvn clean package -Dmaven.test.skip=true' + } + + } + } + + stage('构建ruoyi-job镜像') { + agent none + steps { + container('maven') { + sh 'ls ruoyi-modules/ruoyi-job/target' + sh 'docker build -t ruoyi-job:latest -f ruoyi-modules/ruoyi-job/Dockerfile ./ruoyi-modules/ruoyi-job/' + } + + } + } + + stage('推送ruoyi-job镜像') { + agent none + steps { + container('maven') { + withCredentials([usernamePassword(credentialsId : 'harbor-registry' ,passwordVariable : 'HARBOR_PWD_TEXT' ,usernameVariable : 'HARBOR_USER_TEXT' ,)]) { + sh 'echo "$HARBOR_PWD_TEXT" | docker login $REGISTRY -u "$HARBOR_USER_TEXT" --password-stdin' + sh 'docker tag ruoyi-job:latest $REGISTRY/$HARBOR_NAMESPACE/ruoyi-job:SNAPSHOT-$BUILD_NUMBER' + sh 'docker push $REGISTRY/$HARBOR_NAMESPACE/ruoyi-job:SNAPSHOT-$BUILD_NUMBER' + } + + } + + } + } + + stage('部署ruoyi-job到dev环境') { + agent none + steps { + kubernetesDeploy(configs: 'ruoyi-modules/ruoyi-job/deploy/**', enableConfigSubstitution: true, kubeconfigId: "$KUBECONFIG_CREDENTIAL_ID") + } + } + + } + environment { + DOCKER_CREDENTIAL_ID = 'dockerhub-id' + GITHUB_CREDENTIAL_ID = 'github-id' + KUBECONFIG_CREDENTIAL_ID = 'demo-kubeconfig' + REGISTRY = '192.168.2.147:30002' + DOCKERHUB_NAMESPACE = 'docker_username' + GITHUB_ACCOUNT = 'kubesphere' + APP_NAME = 'devops-java-sample' + HARBOR_NAMESPACE = 'ruoyi' + } + parameters { + string(name: 'TAG_NAME', defaultValue: '', description: '') + } +} \ No newline at end of file diff --git a/Devops/backups/ruoyi-monitor-jenkinsfile b/Devops/backups/ruoyi-monitor-jenkinsfile new file mode 100644 index 00000000..d5cf4f92 --- /dev/null +++ b/Devops/backups/ruoyi-monitor-jenkinsfile @@ -0,0 +1,78 @@ +pipeline { + agent { + node { + label 'maven' + } + + } + stages { + stage('拉取代码') { + agent none + steps { + container('maven') { + git(url: 'https://gitee.com/hongtaohu/RuoYi-Cloud.git', credentialsId: 'gitee-id', branch: 'master', changelog: true, poll: false) + sh 'ls -al' + } + + } + } + + stage('项目编译') { + agent none + steps { + container('maven') { + sh 'ls -al' + sh 'mvn clean package -Dmaven.test.skip=true' + } + + } + } + + stage('构建ruoyi-monitor镜像') { + agent none + steps { + container('maven') { + sh 'ls ruoyi-visual/ruoyi-monitor/target' + sh 'docker build -t ruoyi-monitor:latest -f ruoyi-visual/ruoyi-monitor/Dockerfile ./ruoyi-visual/ruoyi-monitor/' + } + + } + } + + stage('推送ruoyi-monitor镜像') { + agent none + steps { + container('maven') { + withCredentials([usernamePassword(credentialsId : 'harbor-registry' ,passwordVariable : 'HARBOR_PWD_TEXT' ,usernameVariable : 'HARBOR_USER_TEXT' ,)]) { + sh 'echo "$HARBOR_PWD_TEXT" | docker login $REGISTRY -u "$HARBOR_USER_TEXT" --password-stdin' + sh 'docker tag ruoyi-monitor:latest $REGISTRY/$HARBOR_NAMESPACE/ruoyi-monitor:SNAPSHOT-$BUILD_NUMBER' + sh 'docker push $REGISTRY/$HARBOR_NAMESPACE/ruoyi-monitor:SNAPSHOT-$BUILD_NUMBER' + } + + } + + } + } + + stage('部署ruoyi-monitor到dev环境') { + agent none + steps { + kubernetesDeploy(configs: 'ruoyi-visual/ruoyi-monitor/deploy/**', enableConfigSubstitution: true, kubeconfigId: "$KUBECONFIG_CREDENTIAL_ID") + } + } + + } + environment { + DOCKER_CREDENTIAL_ID = 'dockerhub-id' + GITHUB_CREDENTIAL_ID = 'github-id' + KUBECONFIG_CREDENTIAL_ID = 'demo-kubeconfig' + REGISTRY = '192.168.2.147:30002' + DOCKERHUB_NAMESPACE = 'docker_username' + GITHUB_ACCOUNT = 'kubesphere' + APP_NAME = 'devops-java-sample' + HARBOR_NAMESPACE = 'ruoyi' + } + parameters { + string(name: 'TAG_NAME', defaultValue: '', description: '') + } +} \ No newline at end of file diff --git a/Devops/backups/ruoyi-system-jenkinsfile b/Devops/backups/ruoyi-system-jenkinsfile new file mode 100644 index 00000000..3801184e --- /dev/null +++ b/Devops/backups/ruoyi-system-jenkinsfile @@ -0,0 +1,78 @@ +pipeline { + agent { + node { + label 'maven' + } + + } + stages { + stage('拉取代码') { + agent none + steps { + container('maven') { + git(url: 'https://gitee.com/hongtaohu/RuoYi-Cloud.git', credentialsId: 'gitee-id', branch: 'master', changelog: true, poll: false) + sh 'ls -al' + } + + } + } + + stage('项目编译') { + agent none + steps { + container('maven') { + sh 'ls -al' + sh 'mvn clean package -Dmaven.test.skip=true' + } + + } + } + + stage('构建ruoyi-system镜像') { + agent none + steps { + container('maven') { + sh 'ls ruoyi-modules/ruoyi-system/target' + sh 'docker build -t ruoyi-system:latest -f ruoyi-modules/ruoyi-system/Dockerfile ./ruoyi-modules/ruoyi-system/' + } + + } + } + + stage('推送ruoyi-system镜像') { + agent none + steps { + container('maven') { + withCredentials([usernamePassword(credentialsId : 'harbor-registry' ,passwordVariable : 'HARBOR_PWD_TEXT' ,usernameVariable : 'HARBOR_USER_TEXT' ,)]) { + sh 'echo "$HARBOR_PWD_TEXT" | docker login $REGISTRY -u "$HARBOR_USER_TEXT" --password-stdin' + sh 'docker tag ruoyi-system:latest $REGISTRY/$HARBOR_NAMESPACE/ruoyi-system:SNAPSHOT-$BUILD_NUMBER' + sh 'docker push $REGISTRY/$HARBOR_NAMESPACE/ruoyi-system:SNAPSHOT-$BUILD_NUMBER' + } + + } + + } + } + + stage('部署ruoyi-system到dev环境') { + agent none + steps { + kubernetesDeploy(configs: 'ruoyi-modules/ruoyi-system/deploy/**', enableConfigSubstitution: true, kubeconfigId: "$KUBECONFIG_CREDENTIAL_ID") + } + } + + } + environment { + DOCKER_CREDENTIAL_ID = 'dockerhub-id' + GITHUB_CREDENTIAL_ID = 'github-id' + KUBECONFIG_CREDENTIAL_ID = 'demo-kubeconfig' + REGISTRY = '192.168.2.147:30002' + DOCKERHUB_NAMESPACE = 'docker_username' + GITHUB_ACCOUNT = 'kubesphere' + APP_NAME = 'devops-java-sample' + HARBOR_NAMESPACE = 'ruoyi' + } + parameters { + string(name: 'TAG_NAME', defaultValue: '', description: '') + } +} \ No newline at end of file diff --git a/Devops/backups/ruoyi-ui-jenkinsfile b/Devops/backups/ruoyi-ui-jenkinsfile new file mode 100644 index 00000000..56b2f5ce --- /dev/null +++ b/Devops/backups/ruoyi-ui-jenkinsfile @@ -0,0 +1,81 @@ +pipeline { + agent { + node { + label 'nodejs' + } + + } + stages { + stage('拉取代码') { + agent none + steps { + container('nodejs') { + git(url: 'https://gitee.com/hongtaohu/RuoYi-Cloud.git', credentialsId: 'gitee-id', branch: 'master', changelog: true, poll: false) + sh 'ls -al' + } + + } + } + + stage('项目编译') { + agent none + steps { + container('nodejs') { + sh '''cd ruoyi-ui/ +npm install --registry=https://registry.npmmirror.com''' + sh '''cd ruoyi-ui/ +npm run build:prod +ls -al''' + } + + } + } + + stage('构建镜像') { + agent none + steps { + container('nodejs') { + sh 'ls' + sh 'docker build -t ruoyi-ui:latest -f ruoyi-ui/nginx/Dockerfile ./ruoyi-ui/' + } + + } + } + + stage('推送镜像') { + agent none + steps { + container('nodejs') { + withCredentials([usernamePassword(credentialsId : 'harbor-registry' ,passwordVariable : 'HARBOR_PWD_TEXT' ,usernameVariable : 'HARBOR_USER_TEXT' ,)]) { + sh 'echo "$HARBOR_PWD_TEXT" | docker login $REGISTRY -u "$HARBOR_USER_TEXT" --password-stdin' + sh 'docker tag ruoyi-ui:latest $REGISTRY/$HARBOR_NAMESPACE/ruoyi-ui:SNAPSHOT-$BUILD_NUMBER' + sh 'docker push $REGISTRY/$HARBOR_NAMESPACE/ruoyi-ui:SNAPSHOT-$BUILD_NUMBER' + } + + } + + } + } + + stage('部署到dev环境') { + agent none + steps { + kubernetesDeploy(configs: 'ruoyi-ui/deploy/**', enableConfigSubstitution: true, kubeconfigId: "$KUBECONFIG_CREDENTIAL_ID") + } + } + + } + environment { + DOCKER_CREDENTIAL_ID = 'dockerhub-id' + GITHUB_CREDENTIAL_ID = 'github-id' + KUBECONFIG_CREDENTIAL_ID = 'demo-kubeconfig' + REGISTRY = '192.168.2.147:30002' + DOCKERHUB_NAMESPACE = 'docker_username' + GITHUB_ACCOUNT = 'kubesphere' + APP_NAME = 'devops-java-sample' + HARBOR_NAMESPACE = 'ruoyi' + } + parameters { + string(name: 'TAG_NAME', defaultValue: '', description: '') + } +} \ No newline at end of file diff --git a/Devops/ruoyi-auth/Dockerfile b/Devops/ruoyi-auth/Dockerfile new file mode 100644 index 00000000..5acb811f --- /dev/null +++ b/Devops/ruoyi-auth/Dockerfile @@ -0,0 +1,19 @@ +FROM openjdk:8-jdk +LABEL maintainer=huhongtao + + +#docker run -e PARAMS="--server.port 9090" +# server.port 启动端口 +# 覆盖bootstrap。yml文件的内容,意思为去nacos中寻找 ruoyi-auth-prod.yml配置文件 +# spring.cloud.nacos.discovery.server-addr=ruoyi-nacos.ruoyi:8848 注册中心地址 +# spring.cloud.nacos.config.server-addr=ruoyi-nacos.ruoyi:8848 配置中心地址 +# spring.cloud.nacos.config.namespace nacos配置文件所属命名空间 +# spring.cloud.nacos.config.file-extension=yml 配置文件后缀名,类型 +ENV PARAMS="--server.port=8080 --spring.profiles.active=prod --spring.cloud.nacos.discovery.server-addr=ruoyi-nacos.ruoyi:8848 --spring.cloud.nacos.config.server-addr=ruoyi-nacos.ruoyi:8848 --spring.cloud.nacos.config.namespace=prod --spring.cloud.nacos.config.file-extension=yml" +RUN /bin/cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo 'Asia/Shanghai' >/etc/timezone + +COPY *.jar /app.jar +EXPOSE 8080 + +# +ENTRYPOINT ["/bin/sh","-c","java -Dfile.encoding=utf8 -Djava.security.egd=file:/dev/./urandom -jar app.jar ${PARAMS}"] \ No newline at end of file diff --git a/Devops/ruoyi-auth/Jenkinsfile b/Devops/ruoyi-auth/Jenkinsfile new file mode 100644 index 00000000..05e9ce3e --- /dev/null +++ b/Devops/ruoyi-auth/Jenkinsfile @@ -0,0 +1,78 @@ +pipeline { + agent { + node { + label 'maven' + } + + } + stages { + stage('拉取代码') { + agent none + steps { + container('maven') { + git(url: 'https://gitee.com/hongtaohu/RuoYi-Cloud.git', credentialsId: 'gitee-id', branch: 'master', changelog: true, poll: false) + sh 'ls -al' + } + + } + } + + stage('项目编译') { + agent none + steps { + container('maven') { + sh 'ls -al' + sh 'mvn clean package -Dmaven.test.skip=true' + } + + } + } + + stage('构建ruoyi-auth镜像') { + agent none + steps { + container('maven') { + sh 'ls ruoyi-auth/target' + sh 'docker build -t ruoyi-auth:latest -f Devops/ruoyi-auth/Dockerfile ./ruoyi-auth/target/' + } + + } + } + + stage('推送ruoyi-auth镜像') { + agent none + steps { + container('maven') { + withCredentials([usernamePassword(credentialsId : 'harbor-registry' ,passwordVariable : 'HARBOR_PWD_TEXT' ,usernameVariable : 'HARBOR_USER_TEXT' ,)]) { + sh 'echo "$HARBOR_PWD_TEXT" | docker login $REGISTRY -u "$HARBOR_USER_TEXT" --password-stdin' + sh 'docker tag ruoyi-auth:latest $REGISTRY/$HARBOR_NAMESPACE/ruoyi-auth:SNAPSHOT-$BUILD_NUMBER' + sh 'docker push $REGISTRY/$HARBOR_NAMESPACE/ruoyi-auth:SNAPSHOT-$BUILD_NUMBER' + } + + } + + } + } + + stage('部署ruoyi-auth到dev环境') { + agent none + steps { + kubernetesDeploy(configs: 'Devops/ruoyi-auth/deploy/**', enableConfigSubstitution: true, kubeconfigId: "$KUBECONFIG_CREDENTIAL_ID") + } + } + + } + environment { + DOCKER_CREDENTIAL_ID = 'dockerhub-id' + GITHUB_CREDENTIAL_ID = 'github-id' + KUBECONFIG_CREDENTIAL_ID = 'demo-kubeconfig' + REGISTRY = '10.206.16.14:30002' + DOCKERHUB_NAMESPACE = 'docker_username' + GITHUB_ACCOUNT = 'kubesphere' + APP_NAME = 'devops-java-sample' + HARBOR_NAMESPACE = 'ruoyi' + } + parameters { + string(name: 'TAG_NAME', defaultValue: '', description: '') + } +} \ No newline at end of file diff --git a/Devops/ruoyi-auth/deploy/deploy.yml b/Devops/ruoyi-auth/deploy/deploy.yml new file mode 100644 index 00000000..d7cb1810 --- /dev/null +++ b/Devops/ruoyi-auth/deploy/deploy.yml @@ -0,0 +1,66 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + labels: + app: ruoyi-auth + name: ruoyi-auth + namespace: ruoyi #一定要写名称空间 +spec: + progressDeadlineSeconds: 600 + replicas: 1 + selector: + matchLabels: + app: ruoyi-auth + strategy: + rollingUpdate: + maxSurge: 50% + maxUnavailable: 50% + type: RollingUpdate + template: + metadata: + labels: + app: ruoyi-auth + spec: + imagePullSecrets: + - name: harbor-docker-hub #提前在项目下配置访问阿里云的账号密码 + containers: + - image: $REGISTRY/$HARBOR_NAMESPACE/ruoyi-auth:SNAPSHOT-$BUILD_NUMBER + # readinessProbe: + # httpGet: + # path: /actuator/health + # port: 8080 + # timeoutSeconds: 10 + # failureThreshold: 30 + # periodSeconds: 5 + imagePullPolicy: Always + name: app + ports: + - containerPort: 8080 + protocol: TCP + resources: + limits: + cpu: 300m + memory: 600Mi + terminationMessagePath: /dev/termination-log + terminationMessagePolicy: File + dnsPolicy: ClusterFirst + restartPolicy: Always + terminationGracePeriodSeconds: 30 +--- +apiVersion: v1 +kind: Service +metadata: + labels: + app: ruoyi-auth + name: ruoyi-auth + namespace: ruoyi +spec: + ports: + - name: http + port: 8080 + protocol: TCP + targetPort: 8080 + selector: + app: ruoyi-auth + sessionAffinity: None + type: ClusterIP \ No newline at end of file diff --git a/Devops/ruoyi-gateway/Dockerfile b/Devops/ruoyi-gateway/Dockerfile new file mode 100644 index 00000000..f10b3a00 --- /dev/null +++ b/Devops/ruoyi-gateway/Dockerfile @@ -0,0 +1,13 @@ +FROM openjdk:8-jdk +LABEL maintainer=huhongtao + + +#docker run -e PARAMS="--server.port 9090" +ENV PARAMS="--server.port=8080 --spring.profiles.active=prod --spring.cloud.nacos.discovery.server-addr=ruoyi-nacos.ruoyi:8848 --spring.cloud.nacos.config.server-addr=ruoyi-nacos.ruoyi:8848 --spring.cloud.nacos.config.namespace=prod --spring.cloud.nacos.config.file-extension=yml" +RUN /bin/cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo 'Asia/Shanghai' >/etc/timezone + +COPY *.jar /app.jar +EXPOSE 8080 + +# +ENTRYPOINT ["/bin/sh","-c","java -Dfile.encoding=utf8 -Djava.security.egd=file:/dev/./urandom -jar app.jar ${PARAMS}"] \ No newline at end of file diff --git a/Devops/ruoyi-gateway/Jenkinsfile b/Devops/ruoyi-gateway/Jenkinsfile new file mode 100644 index 00000000..038ce906 --- /dev/null +++ b/Devops/ruoyi-gateway/Jenkinsfile @@ -0,0 +1,78 @@ +pipeline { + agent { + node { + label 'maven' + } + + } + stages { + stage('拉取代码') { + agent none + steps { + container('maven') { + git(url: 'https://gitee.com/hongtaohu/RuoYi-Cloud.git', credentialsId: 'gitee-id', branch: 'master', changelog: true, poll: false) + sh 'ls -al' + } + + } + } + + stage('项目编译') { + agent none + steps { + container('maven') { + sh 'ls -al' + sh 'mvn clean package -Dmaven.test.skip=true' + } + + } + } + + stage('构建ruoyi-gateway镜像') { + agent none + steps { + container('maven') { + sh 'ls ruoyi-gateway/target' + sh 'docker build -t ruoyi-gateway:latest -f Devops/ruoyi-gateway/Dockerfile ./ruoyi-gateway/target' + } + + } + } + + stage('推送ruoyi-gateway镜像') { + agent none + steps { + container('maven') { + withCredentials([usernamePassword(credentialsId : 'harbor-registry' ,passwordVariable : 'HARBOR_PWD_TEXT' ,usernameVariable : 'HARBOR_USER_TEXT' ,)]) { + sh 'echo "$HARBOR_PWD_TEXT" | docker login $REGISTRY -u "$HARBOR_USER_TEXT" --password-stdin' + sh 'docker tag ruoyi-gateway:latest $REGISTRY/$HARBOR_NAMESPACE/ruoyi-gateway:SNAPSHOT-$BUILD_NUMBER' + sh 'docker push $REGISTRY/$HARBOR_NAMESPACE/ruoyi-gateway:SNAPSHOT-$BUILD_NUMBER' + } + + } + + } + } + + stage('部署ruoyi-gateway到dev环境') { + agent none + steps { + kubernetesDeploy(configs: 'Devops/ruoyi-gateway/deploy/**', enableConfigSubstitution: true, kubeconfigId: "$KUBECONFIG_CREDENTIAL_ID") + } + } + + } + environment { + DOCKER_CREDENTIAL_ID = 'dockerhub-id' + GITHUB_CREDENTIAL_ID = 'github-id' + KUBECONFIG_CREDENTIAL_ID = 'demo-kubeconfig' + REGISTRY = '192.168.2.147:30002' + DOCKERHUB_NAMESPACE = 'docker_username' + GITHUB_ACCOUNT = 'kubesphere' + APP_NAME = 'devops-java-sample' + HARBOR_NAMESPACE = 'ruoyi' + } + parameters { + string(name: 'TAG_NAME', defaultValue: '', description: '') + } +} \ No newline at end of file diff --git a/Devops/ruoyi-gateway/deploy/deploy.yml b/Devops/ruoyi-gateway/deploy/deploy.yml new file mode 100644 index 00000000..7e14689b --- /dev/null +++ b/Devops/ruoyi-gateway/deploy/deploy.yml @@ -0,0 +1,66 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + labels: + app: ruoyi-gateway + name: ruoyi-gateway + namespace: ruoyi #一定要写名称空间 +spec: + progressDeadlineSeconds: 600 + replicas: 1 + selector: + matchLabels: + app: ruoyi-gateway + strategy: + rollingUpdate: + maxSurge: 50% + maxUnavailable: 50% + type: RollingUpdate + template: + metadata: + labels: + app: ruoyi-gateway + spec: + imagePullSecrets: + - name: harbor-docker-hub #提前在项目下配置访问阿里云的账号密码 + containers: + - image: $REGISTRY/$HARBOR_NAMESPACE/ruoyi-gateway:SNAPSHOT-$BUILD_NUMBER #SNAPSHOT-$BUILD_NUMBER + # readinessProbe: + # httpGet: + # path: /actuator/health + # port: 8080 + # timeoutSeconds: 10 + # failureThreshold: 30 + # periodSeconds: 5 + imagePullPolicy: Always + name: app + ports: + - containerPort: 8080 + protocol: TCP + resources: + limits: + cpu: 300m + memory: 600Mi + terminationMessagePath: /dev/termination-log + terminationMessagePolicy: File + dnsPolicy: ClusterFirst + restartPolicy: Always + terminationGracePeriodSeconds: 30 +--- +apiVersion: v1 +kind: Service +metadata: + labels: + app: ruoyi-gateway + name: ruoyi-gateway + namespace: ruoyi +spec: + ports: + - name: http + port: 8080 + protocol: TCP + targetPort: 8080 + selector: + app: ruoyi-gateway + sessionAffinity: None + type: ClusterIP \ No newline at end of file diff --git a/Devops/ruoyi-modules/ruoyi-file/Dockerfile b/Devops/ruoyi-modules/ruoyi-file/Dockerfile new file mode 100644 index 00000000..f10b3a00 --- /dev/null +++ b/Devops/ruoyi-modules/ruoyi-file/Dockerfile @@ -0,0 +1,13 @@ +FROM openjdk:8-jdk +LABEL maintainer=huhongtao + + +#docker run -e PARAMS="--server.port 9090" +ENV PARAMS="--server.port=8080 --spring.profiles.active=prod --spring.cloud.nacos.discovery.server-addr=ruoyi-nacos.ruoyi:8848 --spring.cloud.nacos.config.server-addr=ruoyi-nacos.ruoyi:8848 --spring.cloud.nacos.config.namespace=prod --spring.cloud.nacos.config.file-extension=yml" +RUN /bin/cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo 'Asia/Shanghai' >/etc/timezone + +COPY *.jar /app.jar +EXPOSE 8080 + +# +ENTRYPOINT ["/bin/sh","-c","java -Dfile.encoding=utf8 -Djava.security.egd=file:/dev/./urandom -jar app.jar ${PARAMS}"] \ No newline at end of file diff --git a/Devops/ruoyi-modules/ruoyi-file/Jenkinsfile b/Devops/ruoyi-modules/ruoyi-file/Jenkinsfile new file mode 100644 index 00000000..72f4688f --- /dev/null +++ b/Devops/ruoyi-modules/ruoyi-file/Jenkinsfile @@ -0,0 +1,78 @@ +pipeline { + agent { + node { + label 'maven' + } + + } + stages { + stage('拉取代码') { + agent none + steps { + container('maven') { + git(url: 'https://gitee.com/hongtaohu/RuoYi-Cloud.git', credentialsId: 'gitee-id', branch: 'master', changelog: true, poll: false) + sh 'ls -al' + } + + } + } + + stage('项目编译') { + agent none + steps { + container('maven') { + sh 'ls -al' + sh 'mvn clean package -Dmaven.test.skip=true' + } + + } + } + + stage('构建ruoyi-file镜像') { + agent none + steps { + container('maven') { + sh 'ls ruoyi-modules/ruoyi-file/target' + sh 'docker build -t ruoyi-file:latest -f Devops/ruoyi-modules/ruoyi-file/Dockerfile ./ruoyi-modules/ruoyi-file/target' + } + + } + } + + stage('推送ruoyi-file镜像') { + agent none + steps { + container('maven') { + withCredentials([usernamePassword(credentialsId : 'harbor-registry' ,passwordVariable : 'HARBOR_PWD_TEXT' ,usernameVariable : 'HARBOR_USER_TEXT' ,)]) { + sh 'echo "$HARBOR_PWD_TEXT" | docker login $REGISTRY -u "$HARBOR_USER_TEXT" --password-stdin' + sh 'docker tag ruoyi-file:latest $REGISTRY/$HARBOR_NAMESPACE/ruoyi-file:SNAPSHOT-$BUILD_NUMBER' + sh 'docker push $REGISTRY/$HARBOR_NAMESPACE/ruoyi-file:SNAPSHOT-$BUILD_NUMBER' + } + + } + + } + } + + stage('部署ruoyi-file到dev环境') { + agent none + steps { + kubernetesDeploy(configs: 'Devops/ruoyi-modules/ruoyi-file/deploy/**', enableConfigSubstitution: true, kubeconfigId: "$KUBECONFIG_CREDENTIAL_ID") + } + } + + } + environment { + DOCKER_CREDENTIAL_ID = 'dockerhub-id' + GITHUB_CREDENTIAL_ID = 'github-id' + KUBECONFIG_CREDENTIAL_ID = 'demo-kubeconfig' + REGISTRY = '192.168.2.147:30002' + DOCKERHUB_NAMESPACE = 'docker_username' + GITHUB_ACCOUNT = 'kubesphere' + APP_NAME = 'devops-java-sample' + HARBOR_NAMESPACE = 'ruoyi' + } + parameters { + string(name: 'TAG_NAME', defaultValue: '', description: '') + } +} \ No newline at end of file diff --git a/Devops/ruoyi-ui/Dockerfile b/Devops/ruoyi-ui/Dockerfile new file mode 100644 index 00000000..9b4bd724 --- /dev/null +++ b/Devops/ruoyi-ui/Dockerfile @@ -0,0 +1,15 @@ +# 基础镜像 +FROM nginx +# author +MAINTAINER huhongtao + +# 挂载目录 +VOLUME /home/ruoyi/projects/ruoyi-ui +# 创建目录 +RUN mkdir -p /home/ruoyi/projects/ruoyi-ui +# 指定路径 +WORKDIR /home/ruoyi/projects/ruoyi-ui +# 复制conf文件到路径 +COPY ./nginx/conf/nginx.conf /etc/nginx/nginx.conf +# 复制html文件到路径 +COPY ./dist /home/ruoyi/projects/ruoyi-ui diff --git a/Devops/ruoyi-ui/Jenkinsfile b/Devops/ruoyi-ui/Jenkinsfile new file mode 100644 index 00000000..71efb040 --- /dev/null +++ b/Devops/ruoyi-ui/Jenkinsfile @@ -0,0 +1,81 @@ +pipeline { + agent { + node { + label 'nodejs' + } + + } + stages { + stage('拉取代码') { + agent none + steps { + container('nodejs') { + git(url: 'https://gitee.com/hongtaohu/RuoYi-Cloud.git', credentialsId: 'gitee-id', branch: 'master', changelog: true, poll: false) + sh 'ls -al' + } + + } + } + + stage('项目编译') { + agent none + steps { + container('nodejs') { + sh '''cd ruoyi-ui/ +npm install --registry=https://registry.npmmirror.com''' + sh '''cd ruoyi-ui/ +npm run build:prod +ls -al''' + } + + } + } + + stage('构建镜像') { + agent none + steps { + container('nodejs') { + sh 'ls' + sh 'docker build -t ruoyi-ui:latest -f Devops/ruoyi-ui/Dockerfile ./ruoyi-ui/' + } + + } + } + + stage('推送镜像') { + agent none + steps { + container('nodejs') { + withCredentials([usernamePassword(credentialsId : 'harbor-registry' ,passwordVariable : 'HARBOR_PWD_TEXT' ,usernameVariable : 'HARBOR_USER_TEXT' ,)]) { + sh 'echo "$HARBOR_PWD_TEXT" | docker login $REGISTRY -u "$HARBOR_USER_TEXT" --password-stdin' + sh 'docker tag ruoyi-ui:latest $REGISTRY/$HARBOR_NAMESPACE/ruoyi-ui:SNAPSHOT-$BUILD_NUMBER' + sh 'docker push $REGISTRY/$HARBOR_NAMESPACE/ruoyi-ui:SNAPSHOT-$BUILD_NUMBER' + } + + } + + } + } + + stage('部署到dev环境') { + agent none + steps { + kubernetesDeploy(configs: 'Devops/ruoyi-ui/deploy/**', enableConfigSubstitution: true, kubeconfigId: "$KUBECONFIG_CREDENTIAL_ID") + } + } + + } + environment { + DOCKER_CREDENTIAL_ID = 'dockerhub-id' + GITHUB_CREDENTIAL_ID = 'github-id' + KUBECONFIG_CREDENTIAL_ID = 'demo-kubeconfig' + REGISTRY = '10.206.16.14:30002' + DOCKERHUB_NAMESPACE = 'docker_username' + GITHUB_ACCOUNT = 'kubesphere' + APP_NAME = 'devops-java-sample' + HARBOR_NAMESPACE = 'ruoyi' + } + parameters { + string(name: 'TAG_NAME', defaultValue: '', description: '') + } +} \ No newline at end of file