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

源码分享站有源码如何搭建app

源码分享站,有源码如何搭建app,专业公司网站建设服务公司,wix做的免费网站可以用吗目录 一、实验 1.环境 2.GitLab 更新deployment文件 3.GitLab更新共享库前端项目CI与CD流水线 4.K8S查看前端项目版本 5.Jenkins 构建前端项目 6.Jenkins 再次构建前端项目 二、问题 1. Jenkins 构建CI 流水线报错 2. Jenkins 构建CI 流水线弹出脚本报错 3. Jenkins…目录 一、实验 1.环境 2.GitLab 更新deployment文件 3.GitLab更新共享库前端项目CI与CD流水线 4.K8S查看前端项目版本 5.Jenkins 构建前端项目 6.Jenkins 再次构建前端项目 二、问题 1. Jenkins 构建CI 流水线报错 2. Jenkins 构建CI 流水线弹出脚本报错 3. Jenkins 构建CD 流水线报错 4.URL中特殊字符实现哪些功能 5.sed如何实现替换特殊字符 一、实验 1.环境 1主机 表1 主机 主机架构版本IP备注master1K8S master节点1.20.6192.168.204.180 jenkins slave 从节点 node1K8S node节点1.20.6192.168.204.181 node2K8S node节点1.20.6192.168.204.182 jenkins  jenkins主节点       2.414.2192.168.204.15:8080  gitlab runner 从节点  harbor私有仓库1.2.2192.168.204.15 gitlab gitlab 主节点        12.10.14192.168.204.8:82 jenkins slave 从节点  sonarqube9.6192.168.204.8:9000  2.GitLab 更新deployment文件 1项目新建目录用于存放上传的deployment 替换文件 2准备更新模板文件deployment.yaml __APPNAME__应用名称对应Jenkins作业名称__NAMESPACE__ (名称空间) 对应业务名称__INAGENAME__(镜像名称) 3更新完成 4项目目录如下 3.GitLab更新共享库前端项目CI与CD流水线 1查看项目架构 2更新K8S CI流水线 k8sci.jenkinsfile Library(mylibmaster) _ import org.devops.*def checkout new Checkout() def build new Build() def unittest new UnitTest() def sonar new Sonar() def gitlabutil new Gitlab()pipeline {agent { label build}options {skipDefaultCheckout true}stages{stage(Checkout){steps{script {println(GetCode)checkout.GetCode(${env.srcUrl},${env.branchName})}}}stage(build){steps{script{println(Build)build.CodeBuild(${env.buildTool})}}}stage(UnitTest){steps{script{println(Test)unittest.CodeTest(${env.buildTool})}}}stage(SonarScan){steps {script {groupName ${JOB_NAME}.split(/)[0]projectName ${JOB_NAME}.split(/)[-1].split(_)[0]sonar.CodeSonar(${env.buildTool},projectName,groupName)}}}stage(PushImage){steps {script {repoName ${JOB_NAME}.split(/)[0]projectName ${JOB_NAME}.split(/)[-1].split(_)[0]env.registry 192.168.204.15env.imageName ${env.registry}/${repoName}/${projectName}:${env.branchName}withCredentials([usernamePassword(credentialsId: 8c662308-4991-4576-9826-74a5417de685, passwordVariable: DOCKER_PASSWD, usernameVariable: DOCKER_USER)]) {sh #重写HTML首页echo ${env.imageName} dist/index.html #构建镜像docker build -t ${env.imageName} .#登录镜像仓库docker login -u ${DOCKER_USER} -p ${DOCKER_PASSWD} ${env.registry}#上传镜像docker push ${env.imageName}#删除镜像sleep 2docker rmi ${env.imageName}}}}}stage(ReleaseFile){steps{script{// 获取模板文件fileData gitlabutil.GetRepoFile(22,deployment.yaml, master)sh rm -fr deployment.yamlwriteFile file: deployment.yaml, text: fileData// 替换模板文件内容namespace ${JOB_NAME}.split(/)[0]appName ${JOB_NAME}.split(/)[-1].split(_)[0]sh sed -i s#__PORT__#${env.port}#g deployment.yamlsed -i s#__APPNAME__#${appName}#g deployment.yamlsed -i s#__NAMESPACE__#${namespace}#g deployment.yamlsed -i s#__IMAGENAME__#${env.imageName}#g deployment.yaml// 上传替换后的版本文件新建文件或者更新文件newYaml sh returnStdout: true, script: cat deployment.yamlprintln(newYaml)//更新gitlab文件内容base64Content newYaml.bytes.encodeBase64().toString()// 会有并行问题同时更新报错try {gitlabutil.UpdateRepoFile(22,${appName}%2f${env.branchName}.yaml,base64Content, master)} catch(e){gitlabutil.CreateRepoFile(22,${appName}%2f${env.branchName}.yaml,base64Content, master)}}}}}}3更新K8S CD流水线 k8scd.jenkinsfile Library(mylibmaster) _ import org.devops.*def gitlabbutil new Gitlab() env.groupName ${JOB_NAME}.split(/)[0] env.projectName ${JOB_NAME}.split(/)[-1].split(_)[0]pipeline {agent { label k8s}options {skipDefaultCheckout true}stages{stage(GetDeployFile){steps{script {env.appName ${env.projectName}env.deployFile ${env.appName}/${env.branchName}.yaml//println(GetCode)fileData gitlabbutil.GetRepoFile(22,${env.appName}%2f${env.branchName}.yaml, master)//println(fileData)sh rm -fr ${env.deployFile}writeFile file: ${env.deployFile}, text: fileData//sh ls -l; cat deployment.yamlsh ls -l }}}stage(DeployAPP){steps{script{env.namespace ${env.groupName}sh ## 发布应用kubectl apply -f ${env.deployFile} -n ${env.namespace}// 获取应用状态5.times{sh sleep 2; kubectl -n ${env.namespace} get pod | grep ${env.appName} }}}}stage(RollOut){input {message 是否进行回滚ok 提交submitter david,aaparameters {choice(choices: [yes,no], name: opts)}}steps{script{switch (${opts}){case yes:sh kubectl rollout undo deployment/${env.appName} -n ${env.namespace}breakcase no:break}}}}} } 4.K8S查看前端项目版本 1外部测试访问当前版本为1.1.7 # curl http://devops03-devops-ui.devops.com:31291 (2)  另开一个终端用watch命令观察pod变化 # watch -n 1 kubectl get pod -n devops03 5.Jenkins 构建前端项目 1Jenkins给前端项目CI流水线添加参数添加字符参数port 2Jenkins给前端项目CD流水线添加参数添加字符参数branchName (3) 构建前端项目CI流水线 4成功 5GitLab查看deployment部署文件已自动上传RELEASE-1.1.5.yaml (6) 构建前端项目CD流水线 (7) 观察pod变化 8外部测试访问当前版本为1.1.5 # curl http://devops03-devops-ui.devops.com:31291 9不进行回滚 10完成 6.Jenkins 再次构建前端项目 1 构建前端项目CI流水线 2成功 3GitLab查看deployment部署文件已自动上传RELEASE-1.1.6.yaml (4) 构建前端项目CD流水线 (5) 观察pod变化 6外部测试访问当前版本为1.1.6 # curl http://devops03-devops-ui.devops.com:31291 7不进行回滚 8完成 二、问题 1. Jenkins 构建CI 流水线报错 1报错 2原因分析 函数名错误 3解决方法 修改函数名。 修改前 修改后 2. Jenkins 构建CI 流水线弹出脚本报错 1报错 2原因分析 script不允许使用静态方法 3解决方法 运行script使用静态方法 根据弹出提示页面点击进入。 点击Approve 完成 重写构建项目成功 3. Jenkins 构建CD 流水线报错 (1) 报错 2原因分析 yaml文件格式错误 3解决方法 修改deploymeny模板文件 修改前 修改后 成功 4.URL中特殊字符实现哪些功能 1URL特殊字符 ​ 有些符号在URL中是不能直接传递的如果要在URL中传递这些特殊符号那么就要使用他们的编码了。 编码的格式为%加字符的ASCII码即一个百分号%后面跟对应字符的ASCII16进制码值。例如 空格的编码值是%20。 如果不使用转义字符这些编码就会当URL中定义的特殊字符处理。​ 2URL特殊符号及编码 十六进制值 1) URL 中号表示空格 %2B 2) 空格 URL中的空格可以用号或者编码 %20 3) / 分隔目录和子目录 %2F 4) ? 分隔实际的 URL 和参数 %3F 5) % 指定特殊字符 %25 6) # 表示书签 %23 7) URL 中指定的参数间的分隔符 %26 8) URL 中指定参数的值 %3D 5.sed如何实现替换特殊字符 1普通操作可以使用冒号(:)井号(#)正斜杠(/)来作为分隔符 sed -i s#abc#def#g geng.file ---将文件geng中的abc替换成defcat geng.file | sed s/abc/def/g ---打印文件geng并将其中的abc替换成def 2对于变量做替换 sed 若是单引号括起来的变量上得再额外加个单引号才能引用生效 若是双引号括起来的可直接引用生效。 1举例 pa127.0.0.1/32; fieldip_allow123; \ echo $field | sed s#^ip_allow.*#ip_allow${pa}#g 结果ip_allow${pa} --变量替换未生效2更改 echo $field | sed s#^ip_allow.*#ip_allow${pa}#g结果ip_allow127.0.0.1/323更改 echo $field | sed s#^ip_allow.*#ip_allow${pa}#g结果ip_allow127.0.0.1/323 特殊字符替换反斜杠、正斜杠、双引号、$符 单个转义多加个反斜杠做转义即可反斜杠\\、正斜杠(\/)、双引号(\) 单转多个参考如下列表 表2 特殊字符转换 实现目标方法能否用单引号还是双引号括起来单引号双引号为什么反斜杠(\)替换成两个反斜杠(\\) sed -i s#\\#\\\\#g file 或sed -i s:\\:\\\\:g file √×反斜杠用双引号括起来会报错反斜杠(\)替换成正斜杠(/)sed -i s#\\#\/#g file√×反斜杠用双引号括起来会报错双引号()替换成两个双引号() sed -i s#\#\\#g file sed -i s#\#\\#g file √√ 单引号()替换成两个单引号()sed -i s###g file×√不能用单引号括起来分不清了($)替换成\$sed -i s:\$:\\\$:g file√×不能用双引号否则会认为是$(正则匹配结尾位置)行的结果追加字符呢 4curl时用的变量sed转化 curl -H Content-Type: application/json -X POST -d 参数参数中涉及到特殊字符都得转义而且要多转一层即$得转成\\$才能原封不动的供后续使用 #值替换单引号、反斜杠、双引号 curl的时候用多一层转义所以\要用\\sed -i s###g ${file} ---单引号要转成两个单引号sed -i s#\\#\\\\\\\\#g ${file} ---反斜杠sed -i s:\:\\\\\:g ${file} ---双引号sed -i s:\$:\\\\\$:g ${file} ---$符curl引用参数的这种形式有两种写法 1直接引用单个参数变量 curl -H Content-Type: application/json -X POST -d {type:0,name: ${pa_name} } 这种需要对变量额外加上一个单引号才能引用生效。2整个参数变量作为一个整体(推荐) param{\type\:\0\, \name\:\${pa_name}\} curl -H Content-Type: application/json -X POST -d ${param}
http://www.hkea.cn/news/14435885/

相关文章:

  • 网站的简介怎么在后台炒做孝昌县专注网站建设代理
  • 免费建网站软件哪个好wordpress tag导入
  • 无锡做网站的企业免费logo设计自动生成u钙网
  • 网站建设方案范文8篇延吉建设局网站
  • 装修公司网站用的织梦提供东莞网站制作公司
  • 重庆网站建设 观音桥制作网站付款方式
  • 宁夏建设网站大数据网站开发工程师
  • 企业网站建设的要求oracle数据库网站开发
  • 域名和网站的关系网站有些什么内容
  • 邢台wap网站建设网站已经申请了域名 接下来怎么
  • 专业建设外贸网站c语言编程软件
  • 课程网站模板湖州网
  • 医药类网站前置审批新手做自媒体从哪开始
  • 企业网站建设基本标准能看男女做那个的网站
  • 做网站那个公司好竞价托管推广代运营
  • 制作网页教程的方法我自己的网站怎么做关键词优化
  • 做中介最好用的网站企业网站开发背景及意义
  • 来个手机能看的网站2021做网站小编怎么样
  • 电子商务网站建设花费国外以紫色为背景的网站
  • 阿里云网站备案查询高端做网站价格
  • ps做网页怎么在网站上打开防蚊手环移动网站建设
  • 网站导航页设计qq网站建设
  • 网站策划专员网站建立的链接不安全怎么解决
  • 设计介绍人的网站北京商标注册公司
  • 如何规划电子商务网站互联网技术的特征
  • 购买域名后如何建设网站古典网站案例
  • 宝塔怎么做第二个网站免费的行情网站app入口
  • 统计局宣传工作总结 网站建设中国核工业二三建设有限公司待遇
  • asp网站如何打开网络营销推广方式包括
  • 温州网站搭建泰安房产网站