部署与布署的区别(部署与布暑)

我将其分为四个阶段:手动部署命令工具部署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镜像可备份;

下面是docker镜像的Dockerfile文件和配置:

FROM node:latest
COPY package.json /
RUN npm i --registry=https://registry.npm.taobao.org
RUN 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 builddocker 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.sws100.com/baike/446178.html

(0)
句子百科句子百科
上一篇 2023年 5月 22日
下一篇 2023年 5月 22日

相关推荐

  • 分付刷卡受限制怎么解除(分付刷卡受限制怎么解除呢)

    在用卡过程中,许多卡友都有遇到过额度降低或者额度被限制使用的情况。那么信用卡为什么被限额,多久才能恢复呢?下面我们一起了解一下。 信用卡被限额了多久才能恢复 第一种情况:被银行限额 1、如果只是超过银行单日消费额度而被限额了,那么一般会在第二天恢复使用,但是消费的时候依然不能超过这个单日消费额度,否则就会被再次限额,那么就只能等到次日恢复后再用卡。 2、如果…

    社会百科 2023年 1月 16日
  • 华氏摄氏度与摄氏温度的换算(华氏摄氏度与摄氏温度的换算C语言)

    真正的温度的定义是: 物质分子运动的能量, 因为所有物质的分子都在运动,所以所有物质都有温度,而不存在完全没有热量的物质,这点你在看开氏度的介绍的时候会知道。这是广义的。 狭义上说,温度的定义包括温度计算标准的定义。 目前通用的温度主要有摄氏度、华氏度、绝对温度等三种温度标准。 摄氏度在世界上应用得比较广泛,它是由 18 世纪瑞典天文学家摄尔维斯提出来的。把…

    2022年 11月 8日
  • 兰花豆的壳能吃吗(兰花豆要去壳吃吗)

    这菜只有夏初才能吃到,很多人不懂吃怪可惜,殊不知又香又好吃,这菜就是蚕豆鱼。在农村,很多人都种了蚕豆,但很少有人吃蚕豆壳,一般都是等蚕豆长大吃蚕豆米,其实嫩的蚕豆壳不仅可以吃,还是皖北阜阳地区一道有名的菜,这道菜名就叫蚕豆鱼,非常好吃,吃过的朋友都说好,那么这菜怎么做呢?下面跟着小编学一学吧! 【蚕豆鱼】: 食材:蚕豆壳、鸡蛋1个、面粉半碗。油适量、盐3克、…

    2022年 11月 21日
  • 大郑爽简历个人资料(大郑爽简历个人资料简介)

    最近有很多朋友都想知道大郑爽简历个人资料是什么。今天小编特意为大家整理了相关知识来解答!还有其他网友想搞清楚大郑爽简历个人资料简介,句子百科(www.sws100.com)已经为你找到了相关问题的答案,接下来一起看看吧,希望能给大家带来帮助。 郑爽,在娱乐圈里边可以说是那种热度很足的演员,从《一起来看流星雨》中饰演楚雨荨爆红之后,郑爽在圈内的发展就一直很顺利…

    2022年 9月 26日
  • 湖南女子学院专升本考试时间(湖南女子学院专升本招生计划)

    长沙学院2022年专升本考试相关事项公告 各位考生: 你们好!根据湖南省教育厅、省教育考试院相关文件精神,为组织做好我校2022年专升本考试工作,维护社会和校园和谐稳定,确保广大考生身心健康,现将我校2022年专升本考试考生须知告知如下,请各位考生仔细阅读,按要求准备相关资料: 一、考试时间、地点以及相关材料准备 (一)考试时间 2022年5月15日。各科目…

    2022年 12月 6日

联系我们

在线咨询: QQ交谈

邮件:k37759@foxmail.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信