花十分钟将vue3前端项目一步一步自动化部署到linux的docker上

简介: 可以理解成镜像是 Docker 生命周期中的构建或者打包阶段,而容器则是启动或者执行阶段。

image.png


大家好,我是 那个曾经的少年回来了。10年前我也曾经年轻过,如今已步入被淘汰的年龄,但如下幡然醒悟,所以活在当下,每天努力一点点,来看看2024年的时候自己会是什么样子吧,2024年的前端又会是什么样子,而2024年的中国乃至全球又会变成什么样子,如果你也有想法,那还不赶紧行动起来。期待是美好的,但是更重要的是要为美好而为之奋斗,付诸于行动。


上一篇文章自己尝试了,一步一步的部署到linux的nginx上,一鼓作气再来尝试一下如何将自己的前端项目部署到docker。


上一篇文章链接juejin.cn/post/713337…


1、理解一下docker


docker 中的几个概念


  • Repository: 仓库就是是集中存放镜像文件的场所,有点类似于github。


  • Image:镜像,用来创建容器。


  • Container: 容器,是一个可运行的镜像实例。


  • Dockerfile: 镜像构建的模版,描述镜像构建的步骤。


再来形象的理解一下docker


  • Docker可以帮助我们来构建和部署容器,我们只需要将自己的应用程序或者服务打包放进容器即可。


  • 容器是基于镜像启动起来的,容器中可以运行一个或多个进程。


  • 可以理解成镜像是 Docker 生命周期中的构建或者打包阶段,而容器则是启动或者执行阶段。


  • 容器基于镜像启动,一旦容器启动完成后,我们就可以登录到容器中安装自己需要的软件或者服务。


2、linux上安装docker


//安装docker
sudo zypper in docker (yum)
//查看docker版本
docker -v


3、设置docker开机启动


// 配置让docker服务岁系统自动启动
systemctl enable docker.service
// 启动docker守护进程
systemctl start docker.service
// 取消开机自动启动
systemctl disable docker.service
// 停止docker服务
systemctl stop docker.service
// 查看nginx服务的状态
systemctl status docker.service
// 重启docker服务
systemctl restart docker.service


4、修改docker镜像源


vim /etc/docker/daemon.json
// 如果权限不够可以要加上sudo
sudo vim /etc/docker/daemon.json


然后再daemon.json中添加


"registry-mirrors" : [
  "https://registry.docker-cn.com",
  "https://docker.mirrors.ustc.edu.cn",
  "http://hub-mirror.c.163.com",
  "https://cr.console.aliyun.com"
]


5、拉取镜像


//查看下载的镜像
docker images
// docker中拉去nginx镜像
docker pull nginx
// 查看nginx镜像 (IMAGE ID)
docker images nginx


6、启动一个容器


//测试nginx镜像是否可用
docker run -d --name mynginx -p 80:80 605c


  • -d   指定容器以守护进程方式在后台运行


  • --name 指定容器名称,此处我指定的是mynginx


  • -p  指定主机与容器内部的端口号映射关系,格式 -p  [宿主机端口号]:[容器内部端口],此处我使用了主机80端口,映射容器80端口


  • 605c 是nginx的镜像IMAGE ID前4位


执行上面的docker run后生成一串字符串(容器ID)说明执行成功


ecs-78441:/etc/docker # docker run -d --name mynginx -p 80:80 605c ddc72b6047dba505f24559d181c99043be50eaa6a383549b7c0fe147266fb0b2


测试nginx镜像通过浏览器进行访问(端口要记得做映射)上面我设置的端口是80


7、开始部署自己的项目


7.1、开始将自己的vue前端项目打包到dist目录


pnpm build


7.2、在本地创建一个Dockerfile


FROM nginx:latest
# 将项目根目录下dist文件夹下的所有文件复制到镜像中 /usr/share/nginx/html/ 目录下
COPY dist/ /usr/share/nginx/html/
COPY default.conf /etc/nginx/conf.d/default.conf


7.3、同样在本地创建一个default.conf(nginx配置文件)


server {
    listen 80;
    root /usr/share/nginx/html;
    index index.html index.htm;
    if ($request_method = 'OPTIONS') {
        return 204;
    }
    location / {
      try_files $uri $uri/ = 404;
    }
}


7.4、将打包后的文件dist文件夹和Dockerfile以及default.conf上传到linux服务器


image.png


我这里是通过filezilla上传和查看的


7.5、在服务器上cd到指定目录


这个目录便是我上传dist和Dockerfile以及default.conf的目录,在命令行中执行


cd  /usr/local/aehyok/docker


7.6、开始通过Dockerfile创建镜像(admin指的是镜像的名字)


在这个目录直接运行以下命令,就开始根据Dockerfile文件开始构建镜像


docker build -t admin .
// 应该会提示Successfully tagged admin:latest
// 说明创建成功了


7.7、查看刚刚创建的镜像(找到admin镜像的IMAGE ID的前四位)


docker images 


7.8、通过镜像创建一个新的容器并运行容器


docker run -d -p 80:80 --name myreact ba04


7.9、查看容器


//列出容器
docker ps
// 列出所有容器(包括未运行的容器) 
docker ps -a
// 开启容器 (container id)
docker start dsfsdfas
docker stop dfdssdf


7.10、通过浏览器进行访问地址即可,完美结束


curl http://xx.xxx.xxx:80 


如果可以查看到下载的html


image.png

image.png


便可以直接通过浏览器进行访问


8、总结


不用靠后端也可以自己部署自己的项目,自己实际操作下来也没什么难度,加油继续折腾吧。


我的个人博客:vue.tuokecat.com/blog


我的个人github:github.com/aehyok


我的前端项目:pnpm + monorepo + qiankun + vue3 + vite3 + 工具库、组件库 + 工程化 + 自动化


不断完善中,整体框架都有了


在线预览:vue.tuokecat.com


github源码:github.com/aehyok/vue-…

目录
相关文章
|
7月前
|
JavaScript 前端开发 Java
制造业ERP源码,工厂ERP管理系统,前端框架:Vue,后端框架:SpringBoot
这是一套基于SpringBoot+Vue技术栈开发的ERP企业管理系统,采用Java语言与vscode工具。系统涵盖采购/销售、出入库、生产、品质管理等功能,整合客户与供应商数据,支持在线协同和业务全流程管控。同时提供主数据管理、权限控制、工作流审批、报表自定义及打印、在线报表开发和自定义表单功能,助力企业实现高效自动化管理,并通过UniAPP实现移动端支持,满足多场景应用需求。
640 1
|
10月前
|
数据采集 存储 Docker
深入理解Docker:为你的爬虫项目提供隔离环境
本教程介绍如何使用Docker构建隔离环境,运行Python爬虫项目,采集小红书视频页面的简介和评论。主要内容包括: 1. **Docker隔离环境**:通过Docker容器化爬虫,确保环境独立、易于部署。 2. **代理IP技术**:利用亿牛云爬虫代理突破反爬限制。 3. **Cookie与User-Agent设置**:伪装请求头,模拟真实用户访问。 4. **多线程采集**:提高数据采集效率。 前置知识要求:Python基础、Docker基本操作及HTML解析(可选)。教程还涵盖常见错误解决方法和延伸练习,帮助你优化爬虫代码并避免陷阱。
269 7
深入理解Docker:为你的爬虫项目提供隔离环境
|
8月前
|
移动开发 前端开发 JavaScript
Vue与React两大前端框架的主要差异点
以上就是Vue和React的主要差异点,希望对你有所帮助。在选择使用哪一个框架时,需要根据项目的具体需求和团队的技术栈来决定。
467 83
|
7月前
|
Java 关系型数据库 MySQL
在Linux平台上进行JDK、Tomcat、MySQL的安装并部署后端项目
现在,你可以通过访问http://Your_IP:Tomcat_Port/Your_Project访问你的项目了。如果一切顺利,你将看到那绚烂的胜利之光照耀在你的项目之上!
390 41
|
7月前
|
JavaScript 前端开发 编译器
Vue与TypeScript:如何实现更强大的前端开发
Vue.js 以其简洁的语法和灵活的架构在前端开发中广受欢迎,而 TypeScript 作为一种静态类型语言,为 JavaScript 提供了强大的类型系统和编译时检查。将 Vue.js 与 TypeScript 结合使用,不仅可以提升代码的可维护性和可扩展性,还能减少运行时错误,提高开发效率。本文将介绍如何在 Vue.js 项目中使用 TypeScript,并通过一些代码示例展示其强大功能。
285 22
|
9月前
|
Docker Python 容器
Docker——阿里云服务器使用Docker部署python项目全程小记
本文记录了我在阿里云服务器上使用Docker部署python项目(flask为例)的全过程,在这里记录和分享一下,希望可以给大家提供一些参考。
1004 1
|
9月前
|
人工智能 JavaScript 前端开发
Vue 性能革命:揭秘前端优化的终极技巧;Vue优化技巧,解决Vue项目卡顿问题
Vue在处理少量数据和有限dom的情况下技术已经非常成熟了,但现在随着AI时代的到来,海量数据场景会越来越多,Vue优化技巧也是必备技能。 博客不应该只有代码和解决方案,重点应该在于给出解决方案的同时分享思维模式,只有思维才能可持续地解决问题,只有思维才是真正值得学习和分享的核心要素。如果这篇博客能给您带来一点帮助,麻烦您点个赞支持一下,还可以收藏起来以备不时之需,有疑问和错误欢迎在评论区指出~
|
JavaScript 前端开发 搜索推荐
Vue的数据驱动视图与其他前端框架的数据驱动方式有何不同?
总的来说,Vue 的数据驱动视图在诸多方面展现出独特的优势,其与其他前端框架的数据驱动方式的不同之处主要体现在绑定方式、性能表现、触发机制、组件化结合、灵活性、语法表达以及与后端数据交互等方面。这些差异使得 Vue 在前端开发领域具有独特的地位和价值。
261 58
|
11月前
|
消息中间件 Linux
Linux:进程间通信(共享内存详细讲解以及小项目使用和相关指令、消息队列、信号量)
通过上述讲解和代码示例,您可以理解和实现Linux系统中的进程间通信机制,包括共享内存、消息队列和信号量。这些机制在实际开发中非常重要,能够提高系统的并发处理能力和数据通信效率。希望本文能为您的学习和开发提供实用的指导和帮助。
793 20
|
11月前
|
JavaScript 前端开发 jenkins
抛弃node和vscode,如何用记事本开发出一个完整的vue前端项目
本文探讨了在不依赖Node和VSCode的情况下,仅使用记事本和浏览器开发一个完整的Vue3前端项目的方法。通过CDN引入Vue、Vue Router、Element-UI等库,直接编写HTML文件实现页面功能,展示了前端开发的本质是生成HTML。虽然日常开发离不开现代工具,但掌握这种基础方法有助于快速实现想法或应对特殊环境限制。文章还介绍了如何用Node简单部署HTML文件到服务器,提供了一种高效、轻量的开发思路。
251 10