学做网站要学多久,邢台专业做网站,郑州一建集团有限公司电话,整站下载器 做网站地图devops部署vue项目 #x1f314;环境说明#x1f30f;创建DevOps工程#x1f30f;填写流水线信息#x1f30f;创建流水线 #x1f314;部署应用所需脚本JenkinsfileDockerfile #x1f314;脚本一些参数如何设置说明#x1f30f;deploy.yaml中的:imagePullSecrets:name属… devops部署vue项目 环境说明创建DevOps工程填写流水线信息创建流水线 部署应用所需脚本JenkinsfileDockerfile 脚本一些参数如何设置说明deploy.yaml中的:imagePullSecrets:name属性jenkinsfile中的kubeconfigId: $KUBECONFIG_CREDENTIAL_IDjenkinsfile中的git-code-auth属性 环境说明 已经安装kubesphere的devops组件安装教程可参考官方文档:https://v3-1.docs.kubesphere.io/zh/docs/pluggable-components/devops/ 创建DevOps工程 填写流水线信息 创建流水线 1 我们编写JenkinsFile 流水线的部署流程如下图 #mermaid-svg-qcHEx1F4FXXm2Avr {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-qcHEx1F4FXXm2Avr .error-icon{fill:#552222;}#mermaid-svg-qcHEx1F4FXXm2Avr .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-qcHEx1F4FXXm2Avr .edge-thickness-normal{stroke-width:2px;}#mermaid-svg-qcHEx1F4FXXm2Avr .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-qcHEx1F4FXXm2Avr .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-qcHEx1F4FXXm2Avr .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-qcHEx1F4FXXm2Avr .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-qcHEx1F4FXXm2Avr .marker{fill:#333333;stroke:#333333;}#mermaid-svg-qcHEx1F4FXXm2Avr .marker.cross{stroke:#333333;}#mermaid-svg-qcHEx1F4FXXm2Avr svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-qcHEx1F4FXXm2Avr .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-qcHEx1F4FXXm2Avr .cluster-label text{fill:#333;}#mermaid-svg-qcHEx1F4FXXm2Avr .cluster-label span{color:#333;}#mermaid-svg-qcHEx1F4FXXm2Avr .label text,#mermaid-svg-qcHEx1F4FXXm2Avr span{fill:#333;color:#333;}#mermaid-svg-qcHEx1F4FXXm2Avr .node rect,#mermaid-svg-qcHEx1F4FXXm2Avr .node circle,#mermaid-svg-qcHEx1F4FXXm2Avr .node ellipse,#mermaid-svg-qcHEx1F4FXXm2Avr .node polygon,#mermaid-svg-qcHEx1F4FXXm2Avr .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-qcHEx1F4FXXm2Avr .node .label{text-align:center;}#mermaid-svg-qcHEx1F4FXXm2Avr .node.clickable{cursor:pointer;}#mermaid-svg-qcHEx1F4FXXm2Avr .arrowheadPath{fill:#333333;}#mermaid-svg-qcHEx1F4FXXm2Avr .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-qcHEx1F4FXXm2Avr .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-qcHEx1F4FXXm2Avr .edgeLabel{background-color:#e8e8e8;text-align:center;}#mermaid-svg-qcHEx1F4FXXm2Avr .edgeLabel rect{opacity:0.5;background-color:#e8e8e8;fill:#e8e8e8;}#mermaid-svg-qcHEx1F4FXXm2Avr .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-qcHEx1F4FXXm2Avr .cluster text{fill:#333;}#mermaid-svg-qcHEx1F4FXXm2Avr .cluster span{color:#333;}#mermaid-svg-qcHEx1F4FXXm2Avr div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-qcHEx1F4FXXm2Avr :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} 拉取代码 编译代码 打包镜像 推送镜像 部署应用 部署应用所需脚本
Jenkinsfile
pipeline {agent {node {label nodejs}}stages {stage(拉取代码) {agent nonesteps {git(url: 代码地址, credentialsId: git-code-auth, branch: pro, changelog: true, poll: false)}}stage(构建代码) {agent nonesteps {container(nodejs) {sh ls
npm install --force
npm run build:k8sprod}}}stage(构建镜像) {agent nonesteps {container(nodejs) {sh lssh docker build -t tingyuan-cloud-service-web-admin:latest .}}}stage(推送镜像) {agent nonesteps {container(nodejs) {withCredentials([usernamePassword(credentialsId: aliyun-docker, passwordVariable: DOCKER_PASSWORD_VAR, usernameVariable: DOCKER_USER_VAR,)]) {sh echo $DOCKER_PASSWORD_VAR | docker login $REGISTRY -u $DOCKER_USER_VAR --password-stdinsh docker tag admin:latest 镜像仓库地址:SNAPSHOT-$BUILD_NUMBERsh docker push 镜像仓库地址:SNAPSHOT-$BUILD_NUMBER}}}}stage(发布应用) {agent nonesteps {kubernetesDeploy(configs: deploy/**, enableConfigSubstitution: true, kubeconfigId: $KUBECONFIG_CREDENTIAL_ID)}}}environment {DOCKER_CREDENTIAL_ID dockerhub-idGITHUB_CREDENTIAL_ID github-idKUBECONFIG_CREDENTIAL_ID demo-kubeconfigREGISTRY 镜像仓库地址GITHUB_ACCOUNT kubesphereDOCKERHUB_NAMESPACE 镜像仓库命名空间}parameters {string(name: TAG_NAME, defaultValue: , description: )}
}Dockerfile
FROM nginx
LABEL maintainerhrd
COPY dist /usr/share/nginx/html/
EXPOSE 80apiVersion: apps/v1
kind: Deployment
metadata:labels:app: 我用的是前端项目,可以自行决定叫什么name: 我用的是前端项目,可以自行决定叫什么namespace: ty #一定要写名称空间
spec:progressDeadlineSeconds: 600replicas: 1selector:matchLabels:app: 我用的是前端项目,可以自行决定叫什么strategy:rollingUpdate:maxSurge: 50%maxUnavailable: 50%type: RollingUpdatetemplate:metadata:labels:app: 我用的是前端项目,可以自行决定叫什么spec:imagePullSecrets:- name: aliyun-docker #提前在项目下配置访问阿里云的账号密码containers:- image: 镜像仓库地址,我用阿里云镜像仓库imagePullPolicy: Alwaysname: appports:- name: http-80containerPort: 80protocol: TCPresources: {}terminationMessagePath: /dev/termination-logterminationMessagePolicy: FilednsPolicy: ClusterFirstrestartPolicy: AlwaysterminationGracePeriodSeconds: 30
---
apiVersion: v1
kind: Service
metadata:labels:app: 我用的是前端项目,可以自行决定叫什么name: 我用的是前端项目,可以自行决定叫什么namespace: ty
spec:ports:- name: httpport: 80protocol: TCPtargetPort: 80selector:app: 我用的是前端项目,可以自行决定叫什么sessionAffinity: Nonetype: ClusterIP脚本一些参数如何设置说明
deploy.yaml中的:imagePullSecrets:name属性
imagePullSecrets:- name: aliyun-docker #提前在项目下配置访问阿里云的账号密码 选择刚才添加的,添加凭证设置变量
jenkinsfile中的kubeconfigId: “$KUBECONFIG_CREDENTIAL_ID” jenkinsfile中的git-code-auth属性