返回
让你事半功倍!轻松掌握 k8s-jenkins 中的 vue 项目流水线发布
见解分享
2023-10-09 12:45:48
手把手带你玩转 k8s-jenkins 中的 vue 项目流水线发布!
发布前端项目有木有很头疼?常常需要手动打包、部署,费时费力还容易出错。但借助 k8s-jenkins 中的 vue 项目流水线发布,这一切都变得简单而高效!
准备工作
-
安装 k8s-jenkins
# 安装 k8s-jenkins helm install k8s-jenkins
-
安装 Jenkins 插件
# 安装 Jenkins 插件 sudo yum install -y yum-utils sudo yum install -y python3-devel sudo yum install -y libselinux-python3 yum install -y epel-release sudo yum install -y python2-virtualenv sudo yum install -y git
流水线配置
-
创建 Jenkinsfile
# 定义 Jenkinsfile job_name = 'vue-project' # 定义项目名称和仓库地址 project_name = 'vue-project' repo_url = 'https://github.com/username/vue-project.git' # 定义镜像名称和端口 image_name = 'vue-project' image_port = 80 # 定义容器名称和端口 container_name = 'vue-project' container_port = 80 // 创建 Jenkinsfile job_name = "vue-project" project_name = "vue-project" repo_url = "https://github.com/username/vue-project.git" image_name = "vue-project" image_port = 80 container_name = "vue-project" container_port = 80 // 开始流水线 def vue_project() { stage("Clean") { sh "git clean -fx" } stage("Checkout") { git url: "$repo_url", branch: 'master' } stage("Build") { sh "npm install" sh "ng build" sh "mkdir -p docker" sh "cd docker" sh "cp -a ../dist/* ./" sh "sed -i \" FROM node AS prod \" Dockerfile" sh "sed -i \" COPY . /usr/src/app \" Dockerfile" sh "sed -i \" CMD [\"ng\"] \" Dockerfile" sh "sed -i \" CMD [\"npm\"] \" Dockerfile" sh "sed -i \" CMD [\"json_server\"] \" Dockerfile" sh "sed -i \" CMD [\"tail\"] \" Dockerfile" sh "sed -i \" CMD [\"-f\"] \" Dockerfile" sh "sed -i \" CMD [\"package.json\"] \" Dockerfile" sh "sed -i \" CMD [\"-\" ] \" Dockerfile" sh "sed -i \" CMD [\"production\"] \" Dockerfile" sh "mv -t ../ docker" sh "cd ../" } stage("Docker Image Build") { sh "cd docker" sh "sudo docker build -t $image_name ." sh "cd ../" } stage("Push Docker Image") { sh "sudo docker push $image_name" } stage("Deploy to Kubernetes") { sh "kubectl create -f docker/kubernetes/vue-deployment.yml" sh "kubectl create -f docker/kubernetes/vue-service.yml" } stage("Cleanup") { sh "rm -rf docker" } } vue_project()
-
构建流水线
# 构建流水线 jenkins job build vue-project
-
启动流水线
# 启动流水线 jenkins job start vue-project
-
部署到 Kubernetes
# dep