网站首页 > 技术文章 正文
我将其分为四个阶段:手动部署、命令工具部署、docker镜像部署、平台化部署。
这几个阶段,越往后越复杂,越往后越友好,毕竟平台化部署有备份还可回退,那是相当安全的。
手动部署
// 打包文件,生产dist目标文件 npm run build
将dist下的文件使用 _FTP文件传输工具 _,上传到服务器上去,就可以直接访问最新文件了。
前提:服务器上已有web服务器,类似nginx服务、Apache服务,服务代理已经启动。
流程:本地build构建打包 ——> FTP文件上传 ——> 通过域名访问最新文件
命令工具部署
命令工具部署其实和 手动部署是一样,只是简化而已。
命令工具部署就是将本地build构建 和 FTP文件上传,直接通过程序来实现。例如我们通过gitlab的CI/CD工具 或 github action上传前端文件。
gitlab CI/CD或github action通过监听master分支push操作,进行运行你的配置命令,下面我以github action配置作为例子:
// .github/workflows/main.yml# name: deploy to aliyun# on:# push:# branches:# - master# jobs:# build:# runs-on: ubuntu-latest# steps:# # 切换分支# - name: Checkout# uses: actions/checkout@master# - name: work around permission issue# run: git config --global --add safe.directory /github/workspace# # 使用 node:10# - name: use Node.js 10# uses: actions/setup-node@v1# with:# node-version: 10# # npm install 同时 build 打包# - name: npm install and build# run: |# npm install# npm run build# env:# CI: true# # Deploy 上传到阿里云, secrets.ACCESS_TOKEN为配置token# - name: Deploy aliyun# uses: easingthemes/ssh-deploy@v2.0.7# env:# SSH_PRIVATE_KEY: ${{ secrets.ACCESS_TOKEN }}# ARGS: "-avz --delete"# SOURCE: "./docs/.vuepress/dist/"# REMOTE_HOST: "47.111.149.160"# REMOTE_USER: "root"# TARGET: "/var/www/HerryLo.github.io"
具体细节可以参考下面的文章↓
真香!GitHub Action一键部署;
前提:服务器上已有web服务器,类似nginx服务、Apache服务,服务代理已经启动。
流程:git push代码到代码仓库 ——> gitlab CI/CD或github action 依赖配置文件打包并构建上传 ——> 通过域名访问最新文件
Docker镜像部署
docker部署是平台化部署的基础,算是命令工具部署,如果说便捷程度,其实**命令工具部署 和 docker部署 **差不多,但是它有个好处:docker镜像可备份;
// 打包文件,生产dist目标文件 npm run build
打包构建之后,就可以通过docker构架镜像啦,下面是docker镜像的Dockerfile文件和配置:
FROM node:latestCOPY package.json /RUN npm i --registry=https://registry.npm.taobao.orgRUN npm run build FROM nginx:latest# 这里的dist/目录是你的项目打包后的文件目录COPY ./dist/ /usr/share/nginx/html/COPY ./nginx.conf /etc/nginx/conf.d/ EXPOSE 80
nginx配置文件:
server { listen 80 default_server; server_name _; location / { root /usr/share/nginx/html/web; index index.html index.htm; try_files $uri $uri/ /index.html; } # 接口代理示例 # location /api { # proxy_pass http://xxx.com; # proxy_set_header Host $host:$server_port; # proxy_set_header X-Real-IP $remote_addr; # proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; # proxy_set_header Cookie $http_cookie; # proxy_buffering off; # proxy_cache off; # } }
之后 通过 docker build 、docker push 镜像名 将镜像打包并推到远端仓库(一般是自己公司项目的私库),然后在服务器上拉取更新最新的镜像,然后将最新的镜像启动即可。
提示:docker 镜像一般会直接把nginx服务打包在一起,所以不用再在服务器上开启单独的服务,只需要将docker端口开放即可。当然,如果是为了统一管理端口,也是可以通过专门的代理服务管理。
流程:本地 build打包文件** ——> **docker打包镜像_ ——> 服务器更新镜像并开启最新镜像 ——> 通过域名访问最新文件_
具体细节可以参考下面的文章↓
Docker构建前端项目;
平台化部署
平台化部署其实就是全流程: 命令工具部署+ docker镜像的组合版。
只需要将代码push提交,之后通过网页访问构建打包平台,例如:阿里云效流水线 或 jekins打包构建 等平台,可以通过点击按钮,下一步下一步的方式,完成打包构建,镜像上传。
至于更新,我是使用rancher平台来进行,服务的管理或更新,镜像上传完之后,可以在rancher平台配置好相关的负载服务,剩下就只是点击更新按钮就可以。
下面是以 阿里codeup流水线 + rancher作为流程示例:
提示:_阿里codeup流水线 或 jekins打包构建 就类似于docker镜像打包,rancher部署就类似于我们将最新镜像上传到服务器上,然后开启服务。(rancher部署可能更加复杂,因为还涉及到k8s集群知识)
流程:git push代码到代码仓库 ——> 通过_codeup_流水线构建打包上传镜像 ——> rancher等平台更新镜像 ——> 通过域名访问最新文件
具体细节可以参考下面的文章↓
知识扩展-Rancher前端服务发布
总结
前端应用部署变化到现在的阶段,也是项目众多不便于管理导致,实际的业务情况,进而推动部署方式的发展。
前端部署的流程每个公司都有一套自己的流程,学习它,适应它,就好了,没有太多疑难问题。
使用工具没有什么难度,难度可能就是你用的不太熟。
原文链接:https://www.cnblogs.com/liuheng/p/17045656.html
猜你喜欢
- 2025-05-25 【AI图鉴】 LangChain-Chatchat 开源、可离线部署大模型知识库项目
- 2025-05-25 RuoYi若依部署前端时,nginx配置错误解决
- 2025-05-25 DeepSeek 挤爆了!教你3步部署个本地版本,包括前端界面
- 2025-05-25 RuoYi若依框架 前端 部署[具体步骤]
- 2025-05-25 Nginx前端部署
- 2024-09-24 教育平台项目前端:项目前后端接口联调,项目上线部署发布
- 2024-09-24 前端工程化体系设计与实践第5章部署第2节前端静态资源资源策略
- 2024-09-24 docker入门,让部署再容易些
- 2024-09-24 有遇到部署服务器后刷新404问题吗?
- 2024-09-24 vue/react项目中不可忽视的自动化部署方案
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- 前端设计模式 (75)
- 前端性能优化 (51)
- 前端模板 (66)
- 前端跨域 (52)
- 前端缓存 (63)
- 前端react (48)
- 前端aes加密 (58)
- 前端md5加密 (49)
- 前端路由 (55)
- 前端数组 (65)
- 前端定时器 (47)
- 前端接口 (46)
- Oracle RAC (73)
- oracle恢复 (76)
- oracle 删除表 (48)
- oracle 用户名 (74)
- oracle 工具 (55)
- oracle 内存 (50)
- oracle 导出表 (57)
- oracle 中文 (51)
- oracle链接 (47)
- oracle的函数 (57)
- mac oracle (47)
- 前端调试 (52)
- 前端登录页面 (48)
本文暂时没有评论,来添加一个吧(●'◡'●)