vue前端使用Docker部署

2023-10-27

在上一篇文章中,我们介绍了如果在CentOS上安装docker环境,本文则是介绍docker的具体项目实践,主要介绍如果通过docker容器来部署vue前端项目。本文需要基于vue项目已经开发完成,并且docker环境已经准备好。思路是Docker镜像中使用nginx反向代理运行vue前端项目。

编译发布vue项目

编译发布vue项目,生成dist目录的待发布前端项目。将dist目录上传到CentOS上的相应项目目录下,这里CentOS上的项目目录叫demo-vue。

 

编写Dockerfile文件

vue的镜像中我们需要基于nginx,把发布后的vue文件复制到镜像中,自定义镜像中的nginx配置。

# 基于nginx:1.20.1版本,如果不指定版本则拉去最新的nginx版本
FROM nginx:1.20.1
MAINTAINER flyduck "flyduck@flyduck.com"
# 将dist文件中的内容复制到 /usr/local/app/ 这个目录下面
# <目标路径>:容器内的指定路径,该路径不用事先建好,路径不存在的话,会自动创建
COPY dist/ /usr/local/app/
# 自定义nginx配置
COPY demo-vue.conf /etc/nginx/conf.d/

自定义vue前端项目的nginx配置放在demo-vue.conf 文件中,将自定义的nginx配置放入/etc/nginx/conf.d/目录下,该目录是nginx加载配置的目录。

server {
    listen       8080;
    server_name  localhost;

    root   /usr/local/app;

    gzip on;
    gzip_static on;
    gzip_min_length 1k;
    gzip_buffers 16 64k;
    gzip_http_version 1.1;
    gzip_comp_level 9;
    gzip_types text/plain text/javascript application/javascript image/jpeg image/gif image/png application/font-woff application/x-javascript text/css application/xml;
    gzip_vary on;
    gzip_disable "MSIE [1-6]\.";

    index  index.html index.htm;

    location / {
        try_files $uri $uri/ /index.html;
    }

    location ~ .*\.(js|css|ico|jpg|png|json)$
    {
       index  index.html;
    }

    location = /index.html {
        add_header Cache-Control "no-cache, no-store";
    }

    #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   html;
    }
}

将Dockerfile文件以及demo-vue.conf配置文件上传到CentOS上的相应项目目录下,与之前vue发布目录dist同级,这里CentOS上的项目目录叫demo-vue。

 

 

生成vue项目镜像

在CentOS上切换到demo-vue目录下,执行下面docker命令编译生成镜像。

docker build -t demo-vue:v1.0 .

 

运行vue项目容器

demo-vue镜像生成后,直接运行docker命令启动demo-vue容器发布vue前端项目。

docker run --name demo-vue -d -p 8080:8080 demo-vue:v1.0

 访问CentOS服务器的8080端口,即可以访问vue前端网站。

参考

vue前端项目打包成Docker镜像并运行

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

vue前端使用Docker部署 的相关文章

随机推荐

  • 【Linux】NUC977移植使用libmodbus

    nuc977移植使用libmodbus 前言 一 libmodbus库的编译 二 程序的编写运行 最后 前言 相关简介 libmodbus是一个快速 跨平台的Modbus库 目前支持Linux Mac OS X FreeBSD QNX和Wi
  • 神经网络模型的模板(def forward)

    基本的网络构建类模板 from torch import nn import torch nn functional as F class net name nn Module def init self super net name se
  • SpringCloud:初识ES(ElasticSearch)

    1 1 了解ES ElasticSearch 1 1 1 ElasticSearch的作用 ElasticSearch是一款非常强大的开源搜索引擎 具备非常多强大功能 可以帮助我们从海量数据中快速找到需要的内容 例如 在GitHub搜索代码
  • emui微信无法连接服务器,华为EMUI5.0手机收不到微信消息,这里有完美解决方案...

    你有木有被人吐槽过回微信慢 可逆根本没收到消息 到底是哪里出了问题呢 捣鼓了半天 小E终于发现了 原来微信收不到消息竟是因为设置有误 有同遭遇的亲们看这里吧 快快get新技能消除误会吧 请确认以下事项 1 确认已开启通知功能 a 开启微信应
  • Obsidian 入门指引

    Obsidian 入门指引 现在Typora开始收费了 作为一个白嫖党 我肯定是不能接受的 所以我找到了一款免费的Markdown编译管理器 Obsidian 并且他的语法和Typora差不多 之前使用Typora的伙伴们可以很快上手 现在
  • C++构造函数详解:从C++11之前到现代C++

    大家好 我是trueDream 在C 编程中 构造函数是一种用于初始化对象的特殊成员函数 它提供了创建对象和初始化对象成员变量的机制 在C 11之前的标准中 C 语言已经提供了多种构造函数来满足不同的需求 本文将从C 11之前的构造函数开始
  • 【Kubernetes资源篇】Deployment控制器入门实战详解

    文章目录 一 Deployment 高级控制器理论 1 Deployment控制器介绍 2 Deployment工作原理 二 Deployment YAML编写及参数解释 1 整体Deployment YAML资源清单内容 2 核心参数解释
  • Maven存储仓库位置的修改以及修改镜像地址

    一 修改Maven存储仓库 第一步 新建一个repository文件夹 当做仓库用 最好不要在系统盘 例如 E repository 第二步 找到已经安装的Maven路径 在apache maven 3 6 3 conf目录下找到setti
  • C 标准库 - 《stddef.h》

    原文链接 https www runoob com cprogramming c standard library stddef h html 简介 stddef h 头文件定义了各种变量类型和宏 这些定义中的大部分也出现在其它头文件中 库
  • 【C语言】qsort函数的使用和模拟实现

    本篇文章我们来了解一下回C语言中qsort函数的使用方法和模拟实现 这是一个通用性很强而且非常方便的库函数 通过这篇文章希望能让你了解sort函数 目录 一 qsort的介绍 二 qsort函数的使用 1 qsort排序整形 2 qsort
  • Spring + iBATIS完整示例

    最近研究了一下Spring iBATIS 发现看别人的例子是一回事 自己写一个完整的应用又是另外一回事 自己受够了网上贴的一知半解的代码 iBATIS是一个持久化框架 封面了sql过程 虽然sql语句需要自己写 另外 我觉得对于初学者来说
  • CH7-HarmonyOS数据持久化

    文章目录 前言 目标 1 创建Data Ability 创建Data 实现UserDataAbility URI介绍 2 文件存储 打开文件 访问Data 3 关系型数据库 基本概念 数据库的增删改查 数据库谓词的使用 查询结果集的使用 开
  • PCB布局布线规则

    PCB布局布线是否规范直接决定了板子能否正常工作 刚接手画板子的工作在规则这方面确实有所欠缺 于是网上求助的时候发现了这位老哥的博客 一个字 精辟 原文连接 http t csdn cn SVbq0 下面的内容全是从大佬文章中复制的 我这篇
  • A Qualifiers Ranking Rules---The 2023 ICPC Asia Regionals Online Contest (1)

    The following is the current ranking rules for the ICPC Asia EC Online Qualifiers and there will be two online contests
  • 基于51单片机的智能大棚光温控制系统

    目录 文章目录 前言 一 器件 51单片机 1602lcd显示屏 ds18b20温度传感器 继电器 hs0038红外模块 二 部分代码展示 1 头文件 2 main c 3 obj c 总结 前言 这是一个基于c51系列单片机做的智能大棚光
  • 一种处理亿级聚合数据的方法

    本文出自 淘系技术公众号 为本人发表的文章 背景 在电商平台的架构体系中 商品数据是系统正常运转的基石 随着平台的发展 商品数据很容易突破亿级 在电商运营方面 平台通常需要举行各种大促 使用各种营销工具吸引消费者 因此需要对商品进行招商 选
  • Windows10的右键菜单添加“管理员取得所有权”

    以前用盗版系统的时候右键菜单中有个 管理员取得所有权 功能 非常好用 不过正版系统和某些盗版系统中右键是没有这个菜单的 需要按以下方式手动添加 1 新建一个txt文件 将以下内容拷贝到文件中 Windows Registry Editor
  • 【C++】_4.内存分布

    目录 1 C C 内存分布 2 C语言的动态内存管理方式 3 C 内存管理方式 3 1 new delete 操作内置类型 3 2 new delete 操作自定义类型 4 operator new 与operator delete函数 5
  • RuntimeError: cuda runtime error (30)解决

    程序出错如上 而且总是伴随着黑屏 一开始以为是cuda跑出问题 而且该问题必须重启才能解决 但是一直很好奇我的电脑Ubuntu18 04设置了黑白屏从不 还是出现该错误 最后为了复现该错误就强制锁屏 果然错误复现 找到原因之后就可以比较好解
  • vue前端使用Docker部署

    在上一篇文章中 我们介绍了如果在CentOS上安装docker环境 本文则是介绍docker的具体项目实践 主要介绍如果通过docker容器来部署vue前端项目 本文需要基于vue项目已经开发完成 并且docker环境已经准备好 思路是Do