docker基础(五)-多阶段构建部署vue前端项目

一,概述

对于部署前端项目如vue项目而言,多阶段构建就是:

第一步:先把前端代码放置到指定工作目录,进行npm install ,然后在npm run build,把dist文件打包出来。
第二步:把dist文件复制到指定目录,然后配置nginx,开放端口能够访问这个项目。

二,多阶段构建部署vue前端项目

1,根目录新建nginx/default.conf

server {
    listen       80;
    server_name  localhost;

    #charset koi8-r;
    access_log  /var/log/nginx/host.access.log  main;
    error_log  /var/log/nginx/error.log  error;

    location / {
        root   /usr/share/nginx/html;
        index  index.html index.htm;
    }

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

2,根目录新建dockerfile文件

# build stage
#使用14.15.0的node版本作为运行软件
FROM node:14.15.0-alpine as build-stage
#将此目录作为工作目录
WORKDIR /app
#复制本目录下的package文件(源文件)到工作目录(目标目录)
COPY package*.json ./
#在工作目录执行npm install 
RUN npm install
#将本本录下所有文件复制到目标目录
COPY . .
RUN npm run build

# production stage
FROM nginx:stable-perl as production-stage
COPY --from=build-stage /app/dist /usr/share/nginx/html
COPY --from=build-stage /app/nginx/default.conf /etc/nginx/conf.d/default.conf
EXPOSE 80
CMD ["nginx", "-g", "daemon off;"]

3,根目录新建 .dockerignore文件

构建镜像的时候 node_modules 的依赖直接通过 RUN npm install 来安装,项目中创建一个 .dockerignore文件来忽略一些直接跳过的文件:

node_modules
npm-debug.log

4,使用dockerfile文件构建vue项目的镜像

docker build -t vuesecond .

注意要在当前项目的根目录运行,因为,-t 是给镜像命名,. 是基于当前目录的 Dockerfile 来构建镜像。

5,构建好镜像之后可以查看镜像

docker image ls

在这里插入图片描述
到此时我们的 Vue 应用镜像 vuesecond已经成功创建。接下来,我们基于该镜像启动一个 Docker 容器。

6,基于此镜像启动一个容器

docker run -p 3002:80 -d --name vueApp2 vuesecond
docker run 基于镜像启动一个容器
-p 3000:80 端口映射,将宿主的3000端口映射到容器的80端口
-d 后台方式运行
--name 容器名,查看 Docker 进程

7,查看现有容器列表

 查看正在运行的容器:docker ps
 查看所有容器:docker ps -a

在这里插入图片描述

8,浏览器访问前端项目

在这里插入图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
数据库系统期末项目基于Spring boot+Vue.js的图书销售系统源码+sql数据库+项目部署说明 【资源说明】 1、该资源内项目代码都是经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载使用,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能。 系统功能描述 前台销售系统功能 图书展示和分类检索:图书分类展示、图书搜索、图书详细信息浏览 会员事务:会员注册、登陆、信息更改、注销 订单事务:购物车管理、订单填写和查询、订单取消 留言与反馈事务:用户售后评价、用户留言、功能和需求反馈 后台应用系统功能 图书管理和更新:图书库存更新、增加、信息修改、销售统计 订单管理:订单统计、查询、状态跟踪 普通管理业务:销售记录浏览和修改、订单状态处理、订单浏览 用户管理:用户查询统计、用户消费情况统计、用户删除,留言回复和反馈处理 数据库表 图书表bms_book 折扣表bms_book_discount 满减表bms_book_full_reduction 类别表bms_category 评价表bms_comment 回复表bms_comment_reply 回复内容表bms_comment_reply_content 评价内容表bms_comment_content 购物车oms_cart_item 订单表oms_order 权限表role 用户邮箱表ums_user_email 用户信息表ums_user_info 收货用户信息表ums_user_receive 用户统计表ums_user_statistics 用户表user 用户权限关系表user_role 开发环境 操作系统:Windows 10 Enterprise 开发工具:Eclipse 2020 Java SDK:Open JDK 1.8.261 数据库:MySQL 8.0、Redis、ElasticSearch 部署环境 操作系统:Linux Ubuntu Server 18.04 X64 项目管理工具 项目构建:Maven 代码管理:Git 镜像管理:Docker Registry 后台主要技术栈 核心框架:Spring Boot ORM框架:Mybatis 数据库连接池:HikariCP 数据库缓存:Redis 消息中间件:RabbitMQ 全文检索引擎:ElasticSearch 分布式文件系统:Minio 反向代理+负载均衡:Nginx 前后端分离 前端框架:NodeJs + Vue + Axios 前端模板:Ant Design Vue + ElementUI

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值