kubeSphere+DevOps+Nodejs部署vue前端
·
先设置jenkins nodejs

项目根目录新建目录deploy
创建demo.yaml
命名空间,私有仓库地址,对外暴露端口需要改成自己的
kind: Deployment
apiVersion: apps/v1
metadata:
labels:
app: demo
component: demo
tier: backend
name: demo
namespace: 命名空间
spec:
progressDeadlineSeconds: 600
replicas: 1
selector:
matchLabels:
app: demo
component: demo
tier: backend
template:
metadata:
labels:
app: demo
component: demo
tier: backend
spec:
imagePullSecrets:
- name: 私有仓库配置id
containers:
- name: demo
image: $REGISTRY/$ALIYUNHUB_NAMESPACE/$PROJECT_NAME:$PROJECT_VERSION-$BRANCH_NAME-$BUILD_NUMBER
imagePullPolicy: Always
ports:
- containerPort: 80
protocol: TCP
resources:
limits:
cpu: 200m
memory: 500Mi
requests:
cpu: 100m
memory: 100Mi
terminationMessagePath: /dev/termination-log
terminationMessagePolicy: File
dnsPolicy: ClusterFirst
restartPolicy: Always
terminationGracePeriodSeconds: 30
---
apiVersion: v1
kind: Service
metadata:
labels:
app: demo
component: demo
name: demo
namespace: 命名空间
spec:
ports:
- name: http
port: 80
protocol: TCP
targetPort: 80
nodePort: 对外暴露端口
selector:
app: demo
component: demo
tier: backend
sessionAffinity: None
type: NodePort
在vue项目根目录创建Jenkinsfile
pipeline {
agent {
node {
label 'nodejs'
}
}
parameters {
string(name:'PROJECT_VERSION',defaultValue: '版本',description:'')
choice(name:'PROJECT_NAME', choices: ['项目名称'],description:'运行项目')
}
environment {
DOCKER_CREDENTIAL_ID = 'dockerlog(docker私有厂库配置id)'
GITEE_CREDENTIAL_ID = 'giteeid(git账户)'
KUBECONFIG_CREDENTIAL_ID = 'kubeconfig1'
REGISTRY = '私有仓库地址'
ALIYUNHUB_NAMESPACE = '私有仓库命名空间'
GITEE_ACCOUNT = 'git账户'
BRANCH_NAME = 'master(分支)'
}
stages {
stage('拉取代码') {
steps {
git(credentialsId: 'giteeid', url: '代码仓库地址', changelog: true, poll: false)
}
}
stage('get dependencies') {
steps {
container('nodejs') {
sh 'npm install -g cnpm --registry=https://registry.npm.taobao.org'
sh 'cnpm i --no-package-lock'
}
}
}
stage('build & push snapshot') {
steps {
container('nodejs') {
sh 'npm run build'
sh 'docker build -f Dockerfile -t $REGISTRY/$ALIYUNHUB_NAMESPACE/$PROJECT_NAME:$PROJECT_VERSION-$BRANCH_NAME-$BUILD_NUMBER .'
withCredentials([usernamePassword(passwordVariable : 'DOCKER_PASSWORD' ,usernameVariable : 'DOCKER_USERNAME' ,credentialsId : "$DOCKER_CREDENTIAL_ID" ,)]) {
sh 'echo "$DOCKER_PASSWORD" | docker login $REGISTRY -u "$DOCKER_USERNAME" --password-stdin'
sh 'docker push $REGISTRY/$ALIYUNHUB_NAMESPACE/$PROJECT_NAME:$PROJECT_VERSION-$BRANCH_NAME-$BUILD_NUMBER'
}
}
}
}
stage('deploy to production') {
steps {
kubernetesDeploy(configs: "deploy/**", enableConfigSubstitution: true, kubeconfigId: "$KUBECONFIG_CREDENTIAL_ID")
}
}
}
}
创建Dockerfile
FROM gatsbyjs/gatsby:latest
ADD dist/ /pub
创建流水线配置凭证代码仓库-扫描远程分支后,第一次运行的时候先暂停,然后在点击运行选择项目
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐


所有评论(0)