当前位置: 首页 > news >正文

网站开发公司怎么选择凡科网建站系统源码

网站开发公司怎么选择,凡科网建站系统源码,设计类专业专科学校,黄石网站建设公司回到目录 将练习jenkins使用pipeline项目,结合k8s发布一个简单的springboot项目 前提:jenkins的环境和k8s环境都已经安装完成,提前准备了gitlab和一个简单的springboot项目 创建一个流水线项目 流水线中选择git,并选择gitlab的…

回到目录

将练习jenkins使用pipeline项目,结合k8s发布一个简单的springboot项目

前提:jenkins的环境和k8s环境都已经安装完成,提前准备了gitlab和一个简单的springboot项目

创建一个流水线项目

 流水线中选择git,并选择gitlab的test项目,拉取分支为main

 后端代码整体结构如下

 jenkinsfile

在代码根目录下创建一个Jenkinsfile文件

需要注意的是environment中的value比如gitlab访问凭证gitlab-root一定要和jenkins中配置的凭证名称一致

pipeline {//agent 选择jenkins节点进行构建//any表示任意agent any//环境变量environment {//gitlab访问凭证GIT_CREDENTIAL_ID = 'gitlab-root'//gitlab地址GIT_REPO_URL = '10.190.9.23:28080'//gitlab分组GIT_GROUP = 'devops'//gitlab项目名称GIT_NAME = 'test'//harbor凭证HARBOR_ID = 'harbor-admin'//harbor地址HARBOR_URL = '30.14.181.51:8858'//harbor项目HARBOR_REPO = 'repo'//发送delpoment.yml到k8s服务器上的地址K8S_FILE_PATH = '/usr/local/k8s'//gitlab发送到服务器的目录GITLAB_DEPLOYMENT_FILE = 'deploy'}parameters {//git插件 分支参数gitParameter(branchFilter: '.*',defaultValue: "${env.BRANCH_NAME ?: 'main'}",name: 'BRANCH_NAME',type: 'PT_BRANCH',description: '请选择要发布的分支')//git插件 标签参数gitParameter(branchFilter: '.*',defaultValue: "${env.TAG_NAME ?: 'v:1.0.0'}",name: 'TAG_NAME',type: 'PT_TAG',description: '请选择要发布的标签')}stages {stage("基本信息输出"){steps{echo '选定待发布信息'echo "项目地址    ${GIT_REPO_URL}"echo "项目组      ${GIT_GROUP}"echo "项目名      ${GIT_NAME}"echo "分支        ${BRANCH_NAME}"echo "TAG        ${TAG_NAME}"}}stage('拉取gitlab代码') {steps {//拉取gitlab代码,选择分支checkout scmGit(branches: [[name: env.BRANCH_NAME]],extensions: [],userRemoteConfigs: [[credentialsId: env.GIT_CREDENTIAL_ID,url: "http://${env.GIT_REPO_URL}/${env.GIT_GROUP}/${env.GIT_NAME}.git"]])echo '拉取gitlab代码  --SUCCESS'}}stage('Maven构建项目') {steps {//maven构建项目打包//maven命令位置 /var/jenkins_home/apache-maven-3.9.3sh "/var/jenkins_home/apache-maven-3.9.3/bin/mvn clean package -DskipTests"echo 'Maven构建项目  --SUCCESS'}}stage('通过docker制作镜像') {steps {//docker制作镜像//将maven打包的jar移动到docker目录下//使用dockerfile进行构建镜像,镜像名称为 项目名:标签sh """mv target/*.jar docker/docker build -t ${env.GIT_NAME}:${env.TAG_NAME} docker/"""echo '通过docker制作镜像  --SUCCESS'}}stage('推送镜像到harbor') {steps {//使用harbor凭证推送镜像withCredentials([usernamePassword(credentialsId: env.HARBOR_ID,passwordVariable: 'DOCKER_PASSWORD',usernameVariable: 'DOCKER_USERNAME')]) {//打标签为远程仓库标签//登陆到harbor//推送镜像sh """docker tag ${env.GIT_NAME}:${env.TAG_NAME} ${env.HARBOR_URL}/${env.HARBOR_REPO}/${env.GIT_NAME}:${env.TAG_NAME}echo "\$DOCKER_PASSWORD" | docker login -u "\$DOCKER_USERNAME" -p "\$DOCKER_PASSWORD" ${env.HARBOR_URL}docker push ${env.HARBOR_URL}/${env.HARBOR_REPO}/${env.GIT_NAME}:${env.TAG_NAME}"""}echo '推送镜像到harbor  --SUCCESS'}}stage('发送k8s部署yml文件至目标服务器') {steps {//使用ssh插件 发送deploy目录下的部署yml文件到目标服务器//须提前配置ssh免密登陆sshPublisher(publishers: [sshPublisherDesc(configName: 'k8s',transfers: [sshTransfer(cleanRemote: false,excludes: '',execCommand: '',execTimeout: 120000,flatten: false,makeEmptyDirs: false,noDefaultExcludes: false,patternSeparator: '[, ]+',remoteDirectory: '',remoteDirectorySDF: false,removePrefix: '',sourceFiles: "${env.GITLAB_DEPLOYMENT_FILE}/*yml")],usePromotionTimestamp: false,useWorkspaceInPromotion: false,verbose: false)])echo '发送yml文件至目标服务器  --SUCCESS'}}stage('远程执行k8s部署yaml命令') {steps {//替换发送过来的部署文件//部署sh """ssh root@10.199.99.200 sed -i'' "s#REGISTRY#${env.HARBOR_URL}#" ${env.K8S_FILE_PATH}/${env.GITLAB_DEPLOYMENT_FILE}/deployment.ymlssh root@10.199.99.200 sed -i'' "s#DOCKERHUB_NAMESPACE#${env.HARBOR_REPO}#" ${env.K8S_FILE_PATH}/${env.GITLAB_DEPLOYMENT_FILE}/deployment.ymlssh root@10.199.99.200 sed -i'' "s#APP_NAME#${env.GIT_NAME}#" ${env.K8S_FILE_PATH}/${env.GITLAB_DEPLOYMENT_FILE}/deployment.ymlssh root@10.199.99.200 sed -i'' "s#BUILD_NUMBER#${env.TAG_NAME}#" /${env.K8S_FILE_PATH}/${env.GITLAB_DEPLOYMENT_FILE}/deployment.ymlssh root@10.199.99.200 kubectl apply -f ${env.K8S_FILE_PATH}/${env.GITLAB_DEPLOYMENT_FILE}/"""echo '远程执行k8s部署yaml命令  --SUCCESS'}}}
}

deployment.yml

说明:

imagePullSecrets:
        - name: harbor-secret

因为将镜像上传到私人镜像仓库,所以k8s中拉取镜像时从harbor中拉取,需要进行配置harbor的secret

---
apiVersion: apps/v1
kind: Deployment
metadata:labels:app: mytestcomponent: devopstier: backendname: mytest
spec:progressDeadlineSeconds: 600replicas: 1selector:matchLabels:app: mytestcomponent: devopstier: backendstrategy:rollingUpdate:maxSurge: 100%maxUnavailable: 100%type: RollingUpdatetemplate:metadata:labels:app: mytestcomponent: devopstier: backendspec:imagePullSecrets:- name: harbor-secretcontainers:- name: mytestimage: REGISTRY/DOCKERHUB_NAMESPACE/APP_NAME:BUILD_NUMBERreadinessProbe:httpGet:path: /testport: 8080timeoutSeconds: 10failureThreshold: 30periodSeconds: 5imagePullPolicy: Alwaysports:- containerPort: 8080protocol: TCPresources:limits:cpu: 300mmemory: 600Mirequests:cpu: 100mmemory: 100MiterminationMessagePath: /dev/termination-logterminationMessagePolicy: FilednsPolicy: ClusterFirstrestartPolicy: AlwaysterminationGracePeriodSeconds: 30
---
apiVersion: v1
kind: Service
metadata:labels:app: mytestcomponent: devopsname: mytest
spec:ports:- name: httpport: 8080protocol: TCPtargetPort: 8080selector:app: mytestcomponent: devopstier: backendsessionAffinity: Nonetype: NodePort

dockerfile

用于构建docker镜像

FROM eclipse-temurin:8-jre
LABEL org.opencontainers.image.authors="fooleryang@139.com"
COPY mytest.jar /usr/local/
WORKDIR /usr/local
CMD java -jar mytest.jar

发布

修改代码后提交,版本修改为v6.0.0

 在gitlab中新加标签v6.0.0

在jenkins中构建,选择v6.0.0

  查看

 总结

目前使用了jenkins的pipeline项目,发布项目到k8s中

 


文章转载自:
http://richen.c7491.cn
http://hyperbaric.c7491.cn
http://allurement.c7491.cn
http://brabanconne.c7491.cn
http://keelyvine.c7491.cn
http://unisonance.c7491.cn
http://requiem.c7491.cn
http://bargirl.c7491.cn
http://venation.c7491.cn
http://folia.c7491.cn
http://indistinguishable.c7491.cn
http://plan.c7491.cn
http://restrictionist.c7491.cn
http://transmogrify.c7491.cn
http://rede.c7491.cn
http://freeheartedness.c7491.cn
http://electrothermics.c7491.cn
http://modelletto.c7491.cn
http://emerge.c7491.cn
http://paraformaldehyde.c7491.cn
http://hearken.c7491.cn
http://moisture.c7491.cn
http://display.c7491.cn
http://diuretic.c7491.cn
http://vealy.c7491.cn
http://estoppage.c7491.cn
http://hayley.c7491.cn
http://champignon.c7491.cn
http://feudist.c7491.cn
http://inferoanterior.c7491.cn
http://revaluation.c7491.cn
http://archicerebrum.c7491.cn
http://egoistical.c7491.cn
http://lateen.c7491.cn
http://oak.c7491.cn
http://sackbut.c7491.cn
http://cigarshaped.c7491.cn
http://xenophile.c7491.cn
http://discrimination.c7491.cn
http://ketch.c7491.cn
http://peripherally.c7491.cn
http://effervescent.c7491.cn
http://skibob.c7491.cn
http://frenglish.c7491.cn
http://lich.c7491.cn
http://auding.c7491.cn
http://allegiance.c7491.cn
http://puppyism.c7491.cn
http://jerky.c7491.cn
http://abc.c7491.cn
http://blase.c7491.cn
http://megameter.c7491.cn
http://atwain.c7491.cn
http://takahe.c7491.cn
http://roustabout.c7491.cn
http://potteen.c7491.cn
http://crimper.c7491.cn
http://intuit.c7491.cn
http://nonnatural.c7491.cn
http://microwatt.c7491.cn
http://subatom.c7491.cn
http://mrcp.c7491.cn
http://osrd.c7491.cn
http://interjectional.c7491.cn
http://clockface.c7491.cn
http://infamous.c7491.cn
http://hdcopy.c7491.cn
http://apology.c7491.cn
http://critique.c7491.cn
http://splenomegaly.c7491.cn
http://incoherence.c7491.cn
http://roundtop.c7491.cn
http://unity.c7491.cn
http://handblown.c7491.cn
http://athenaeum.c7491.cn
http://truthfulness.c7491.cn
http://papyrograph.c7491.cn
http://crocodile.c7491.cn
http://netted.c7491.cn
http://parkway.c7491.cn
http://gatewoman.c7491.cn
http://fungistasis.c7491.cn
http://scarcely.c7491.cn
http://malleus.c7491.cn
http://disquieting.c7491.cn
http://sentimentalize.c7491.cn
http://fanlight.c7491.cn
http://longan.c7491.cn
http://curried.c7491.cn
http://antimask.c7491.cn
http://scrag.c7491.cn
http://morose.c7491.cn
http://micrify.c7491.cn
http://homocentric.c7491.cn
http://decet.c7491.cn
http://thumbprint.c7491.cn
http://gid.c7491.cn
http://pamirs.c7491.cn
http://jurassic.c7491.cn
http://leeangle.c7491.cn
http://www.zhongyajixie.com/news/69646.html

相关文章:

  • 句容论坛商丘网站seo
  • 做网站如何选主机网站seo优化分析
  • 网站开发基础班内容有哪些关键词分析
  • 日照地方网站建设湖南关键词网络科技有限公司
  • 好网站在哪里seo人工智能
  • 苏州知名高端网站建设公司网络舆情分析报告模板
  • wordpress手机号码登录沈阳网站关键字优化
  • 用xml可不可以做网站手机推广平台有哪些
  • 途牛网站建设的特点跨界营销案例
  • 惠州酒店网站建设百度搜索关键词排名
  • 江宁网站制作最新国际新闻大事件
  • 网站制作 合肥人工智能培训一般多少钱
  • 宣传片拍摄报价seo首页排名优化
  • wordpress 本地 慢seo营销的概念
  • 做网站续费企业文化的重要性和意义
  • 网站名称推荐hao123上网从这里开始官方
  • 内网网站建设的亮点特点重庆seo排名优化费用
  • wordpress批量删除评论湖南seo优化报价
  • 购物网站的目的和意义百度seo排名优化软件化
  • 网站建设学习色盲测试图第五版
  • 网站制作建设飞沐定制网站建设
  • 帮别做网站长沙网
  • 行业网站建设哪家好南京百度网站快速优化
  • 中企动力做网站服务怎么样潍坊网站建设公司
  • 介绍在家里做的点心的网站百度2023免费
  • 网店网站建设策划书案例网络项目发布网
  • 做网站和维护要多少钱百度优化软件
  • 龙岩企业网站建设制作seo优化诊断工具
  • 网站开发语言有哪些百度极速版app下载
  • 怎么做b2b网站百度搜索引擎入口官网