首页 > 其他分享 >vue部署

vue部署

时间:2024-01-29 20:23:24浏览次数:34  
标签:vue frontend 部署 nginx dist docker root localhost

1.虚拟机打包

0.本地打包(webstorm)
npm run build
1.上传工程及镜像
# 1.将打包好的文件dist压缩,发送到服务器一文件夹内
[root@localhost ~]# cd /opt/frontend
[root@localhost frontend]# ls
dist.zip

# 2.解压打包的文件
[root@localhost frontend]# unzip dist.zip
[root@localhost frontend]# ls
dist  dist.zip

# 3.编写Dockerfile
[root@localhost frontend]# vi Dockerfile

Dockerfile:

# 使用 Nginx 作为基础镜像
FROM nginx:stable-alpine

# 将构建好的静态文件复制到 Nginx 的默认目录
COPY dist /usr/share/nginx/html

# 暴露容器的 80 端口(可根据需要修改)
EXPOSE 80

# 启动 Nginx 服务器
CMD ["nginx", "-g", "daemon off;"]

build.sh:

# 4.生成一个镜像web_vue,并把该命令整理成脚本
[root@localhost frontend]# echo "docker build -t myweb ." > build.sh
2.安装docker
3.更新程序/生成镜像(images)

这里直接把更新的dist程序生成镜像

[root@localhost frontend]# ls
dist  dist.zip  Dockerfile  build.sh 

# 1.执行运行脚本(运行Dockerfile)
[root@localhost frontend]# ./build.sh

# 2.查看docker镜像
[root@localhost frontend]# docker images
REPOSITORY   TAG             IMAGE ID       CREATED         SIZE
myweb        latest          b8f2fbcd978b   14 hours ago    43.8MB
pymy         latest          62bf1bc7f047   2 weeks ago     1.28GB
pynew        latest          7a61e3591a00   2 weeks ago     1.28GB
node         lts-alpine      28fd30c24deb   24 months ago   110MB
python       3.10            a5d7930b60cc   2 years ago     917MB
nginx        stable-alpine   373f8d4d4c60   2 years ago     23.2MB

4.生成容器(container)并运行
# 1.基于web_vue镜像,生成容器,映射端口88:80
[root@localhost frontend]# docker run -it -d -p 88:80 myweb
582d3bef8fcacdfced206032799ce885a7a5cb731d13d80c13b56192592716eb

# 2.查看系统容器(container),即进程
[root@localhost frontend]# docker ps
CONTAINER ID   IMAGE       COMMAND                 CREATED          PORTS                               NAMES
582d3bef8fca   myweb    "/docker-entrypoint.…"   6 seconds ago    0.0.0.0:88->80/tcp, :::88->80/tcp   awesome_greider

# 3.运行端口(有时有的端口被占用,换端口)
[root@localhost frontend]# curl 127.0.0.1:88
<!DOCTYPE html>
<html lang="zh-CN" id="html">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>RMPA</title>
      <link rel="stylesheet" href="https://cdn.staticfile.org/ant-design-vue/3.2.20/antd.min.css">
      <script src="https://cdn.staticfile.org/echarts/4.3.0/echarts.min.js" ></script>
    <script type="module" crossorigin src="/assets/index-afa7c0d5.js"></script>
    <link rel="stylesheet" href="/assets/index-1d8f62a7.css">
  </head>

  <body>
    <div id="app"></div>
    
  </body>
</html>

# 重要必须做
# 进入容器
[root@localhost frontend]# docker exec -it 58 sh
/ # vi /etc/nginx/nginx.conf
/ # vi /etc/nginx/conf.d/default.conf

server {
    listen       80;
    listen  [::]:80;
    server_name  localhost;

    #access_log  /var/log/nginx/host.access.log  main;

    location / {
        root   /usr/share/nginx/html;
        index  index.html index.htm;
        
        # 添加这一行
        try_files $uri $uri/ /index.html; #解决页面刷新404问题
    }

    #error_page  404              /404.html;

    # redirect server error pages to the static page /50x.html
    #
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }

    # proxy the PHP scripts to Apache listening on 127.0.0.1:80
    #
    #location ~ \.php$ {
    #    proxy_pass   http://127.0.0.1;
    #}

    # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
    #
    #location ~ \.php$ {
    #    root           html;
    #    fastcgi_pass   127.0.0.1:9000;
    #    fastcgi_index  index.php;
    #    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
    #    include        fastcgi_params;
    #}

    # deny access to .htaccess files, if Apache's document root
    # concurs with nginx's one
    #
    #location ~ /\.ht {
    #    deny  all;
- /etc/nginx/conf.d/default.conf 1/45 2%

5.打包镜像(images)
[root@localhost frontend]# docker save myweb:latest > web.tar
[root@localhost frontend]# ls
dist  dist.zip  Dockerfile  build.sh web.tar
[root@localhost frontend]# sz web.tar (保存到桌面)

2.新服务器部署

1.上传镜像
# 将打包好的镜像放入服务器的一文件夹
root@iZ8vbdn64nyz3h1qvey2rbZ:/# mkdir /vuework
root@iZ8vbdn64nyz3h1qvey2rbZ:/# cd /vuework
root@iZ8vbdn64nyz3h1qvey2rbZ:/frontend# ls
web.tar
2.加载镜像
# 加载镜像
root@iZ8vbdn64nyz3h1qvey2rbZ:/frontend# docker load < web.tar
Loaded image: web_vue:latest
root@iZ8vbdn64nyz3h1qvey2rbZ:/frontend# docker images
REPOSITORY   TAG       IMAGE ID       CREATED        SIZE
myweb        latest    b8f2fbcd978b   18 hours ago   43.8MB
pymy         latest    f5cf2670087f   2 weeks ago    1.36GB
python       3.10      748d669298ac   2 months ago   1e+03MB
root@iZ8vbdn64nyz3h1qvey2rbZ:/frontend# 

3.生成容器(container)并运行
# 基于web_vue镜像,生成容器,映射端口8084:80
root@iZ8vbdn64nyz3h1qvey2rbZ:/frontend# docker run -it -d -p 8084:80 myweb
fcc4a30ae4ac0f8ab4f58079af6a79e42f64e0c13c2a486575477a9cb4b700f6
root@iZ8vbdn64nyz3h1qvey2rbZ:/frontend# docker ps
CONTAINER ID   IMAGE     COMMAND                  CREATED          PORTS                                      NAMES
fcc4a30ae4ac   myweb     "/docker-entrypoint.…"   59 seconds ago   0.0.0.0:8084->80/tcp, :::8084->80/tcp      hungry_yalow
dc464606ff60   myweb     "/docker-entrypoint.…"   17 hours ago     0.0.0.0:8085->80/tcp, :::8085->80/tcp      vue
aca9afaaf92b   pysrv     "python3 manage.py r…"   19 hours ago     0.0.0.0:8082->8000/tcp, :::8082->8000/tcp  wonday

进行重要必须做
4.开放端口

image-20231229152133249

5.测试端口:

端口:47.92.84.209:8084

image-20231229152223609

3.更新程序

1.重新打包(webstorm)
# 把重新打包的程序dist传到文件夹内,并解压
root@iZ8vbdn64nyz3h1qvey2rbZ:/vuework# ls
dist.zip  web.tar
root@iZ8vbdn64nyz3h1qvey2rbZ:/vuework# unzip dist.zip
Archive:  dist.zip
root@iZ8vbdn64nyz3h1qvey2rbZ:/vuework# ls
dist  dist.zip  web.tar
#把新的打包程序dist 拷贝到fcc4a30ae4ac 容器内
root@iZ8vbdn64nyz3h1qvey2rbZ:/vuework# docker cp dist fcc:/tmp/
Successfully copied 20.7MB to fcc:/tmp
root@iZ8vbdn64nyz3h1qvey2rbZ:/vuework# docker exec -it fcc sh
/ # cd /tmp/
/tmp # ls
dist
/tmp # cd /usr/share/nginx
/usr/share/nginx # ls
html
/usr/share/nginx # rm html/* -rf
/usr/share/nginx # cp /tmp/dist/* html/ -r
/usr/share/nginx # ls
html
/usr/share/nginx # 


标签:vue,frontend,部署,nginx,dist,docker,root,localhost
From: https://www.cnblogs.com/DQ-MINE/p/17995255

相关文章

  • Eventgrid+Function实现event driven架构 - 架构介绍及环境部署
    今天来介绍这几年在云上比较流行的eventdriven,也就是事件驱动的架构,用一个很简单的sample来实际看下事件驱动的架构到底是个啥事件驱动的架构由生成事件流的事件生成者和侦听事件的事件使用者组成,它的特点是事件可几乎实时发送,因此使用者可在事件发生时需要立即做出响应。生成者......
  • 一站式指南:ClkLog部署环境配置指南
    在今天的数字化世界中,数据管理和分析工具的选择对于企业的成功至关重要。ClkLog作为一款强大的日志分析工具,能够帮助企业从海量数据中洞察业务、提升效率。然而,如何才能顺利部署ClkLog系统,使其最大化地服务于您的业务呢?本篇文章将提供一站式的ClkLog部署指南,无论您是IT新手还是资深......
  • vue配合什么css框架
    在Vue中使用CSS框架可以提高开发效率和网站外观的一致性。下面是一些与Vue兼容的常见CSS框架:BootstrapVue:BootstrapVue是一个基于Vue.js的Bootstrap组件库。它提供了一套完整的Vue.js组件,同时也支持Bootstrap的所有特性。ElementUI:ElementUI是一套基于Vue.js的组件库......
  • 部署在IIS上的网站如何调试
    原文链接:https://www.pianshen.com/article/1494487602/IIS中的网站调试调试最常见的一般就是将项目设为项,设为起始页,然后F5。稍微复杂点的就是附加到进程等。其实很简单,首先还是和原来一样,加上断点。但不要按F5了。选择工具菜单(调试菜单也可以),附加到进程。然后会惊现一个......
  • vue安装node-sass sass-loader 报错
    vue安装node-sass  sass-loader报错 主要的原因是因为node的版本 和  node-sass  sass-loader 不匹配导致的报错node-sass版本和sass-loader版本对应 具体查看这个链接   https://www.npmjs.com/package/node-sass拿我当前项目举例  我node版本是16......
  • Jenkins + Gitlab 前后端项目自动化构建部署
    Jenkins+Gitlab前后端项目自动化构建部署:https://blog.csdn.net/IT_ZRS/article/details/115032509?spm=1001.2014.3001.5501Docker+Jenkins+Gitlab自动化构建部署:https://blog.csdn.net/IT_ZRS/article/details/117533847?spm=1001.2101.3001.6650.1&utm_medium=distrib......
  • docker-compose部署简单案例
    Dockerfile#设置基础镜像FROMpython:3.7#设置环境变量ENVPYTHONUNBUFFERED=1ENVPATH/usr/local/bin:$PATH#设置工作目录WORKDIR/home/lab#复制项目文件到容器中COPY./home/lab/#COPYrequirements.txt/home/lab#安装依赖包(先更新pip,换源,再安装包)......
  • vue 设置密码添加弱、中、强的校验
    需求:1)需要输入原密码,如果输入的原密码不对,则给出相应提示;2)新密码需要确认,输入两次,且相同,否则系统给出提示;3)新密码长度大于等于6个字符小手18个字符;4)新密码给出密码强度判断,判断规则为:宇母数字符号只有一种则为弱,字母数字符号任意包含两种则为中,字母数字符号包含三种则为强。HTM......
  • docker部署(使用docker-compose)手把手教程
    docker部署(使用docker-compose)手把手教程:https://blog.csdn.net/qq_38377190/article/details/125504426?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522170650340916800186593495%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=1706......
  • vue 环境配置(使用cross-env配置)
    vue环境配置(使用cross-env配置)通过定义不同的打包命令,更改项目环境变量。1、下载cross-even(可跨平台设置node环境变量)npminstallcross-env--save-dev2、package.json文件查询scripts,在其中加入如下代码:(其为不同环境的打包命令,可自定义)。"build:qa":"cr......