前端项目容器化Docker打包部署方式详解

 更新时间:2023年11月20日 09:25:57   作者:言午日尧耳总  
这篇文章主要为大家介绍了前端项目容器化Docker打包部署方式详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

前端项目容器化(Docker)打包部署

  • 新建一个vue项目
  • 增加容器配置
  • docker命令打包镜像,部署本机

BiliBili视频同步发布

新建vue项目

  • 使用vue官方脚手架创建一个项目

    • 下面的demo使用默认配置

安装依赖并运行

# 使用vue脚手架创建项目
npm create vue@latest
# 进入项目(假设项目名为"xxc-web")
cd xxc-web
# 安装依赖
npm install
# 测试
npm run dev

手动打包部署(旧方式)

  • 单机部署方式通常使用"npm run build"打包成静态文件

    • 通常打包后文件在项目根目录的"dist"目录下
  • 将dist目录的文件上传服务器
  • 配置nginx,将某域名/端口号指向该目录

之后即可使用http://ip:port访问

容器化(Docker)打包部署

打包配置

  • 根目录新增"nginx.conf"文件

    • 为了解决部分框架部署后的路由问题
    • 如:该开始访问一切正常,但是使用浏览器刷新后,报错404

文件内容如下:

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;
      # 新增下面这句,其他是默认nginx配置
      # 解决部分前端框架的路由问题,在浏览器刷新报错404
      try_files $uri $uri/ /index.html;
  }
  error_page   500 502 503 504  /50x.html;
  location = /50x.html {
      root   /usr/share/nginx/html;
  }
}
  • 根目录新增"Dockerfile"文件

    • 打包过程分为两个阶段
    • 第一阶段:使用node镜像安装依赖并打包成静态文件
    • 第二阶段:将静态文件放入nginx镜像,并修改配置

文件内容如下:

# 第一阶段:node镜像打包
FROM node:latest AS frontend-builder
WORKDIR /build-app
COPY . .
RUN npm install
RUN npm run build
# 第二阶段:nginx打包
FROM nginx:latest
EXPOSE 80
WORKDIR /app
# 替换nginx配置
COPY nginx.conf /etc/nginx/conf.d/default.conf
# 将第一阶段的静态文件复制到nginx中
RUN rm -rf /usr/share/nginx/html
RUN mkdir /usr/share/nginx/html
COPY --from=frontend-builder /build-app/dist /usr/share/nginx/html
# 运行
CMD ["nginx", "-g", "daemon off;"]

打包部署

  • 使用docker命令打包

    • 镜像名称为"xxc-web:v1"
  • 将镜像上传到docker仓库或私有仓库(Harbor)

运行容器

# 打包镜像
docker build -t xxc-web:v1 . 
# 上传仓库
# docker login -u <用户名> -p <密码> <仓库地址>
# docker push xxc-web:v1
# 运行
docker run --name xxc-web -dp 1234:80 xxc-web:v1
  • 如下运行命令映射为1234端口,访问 http://localhost:1234

以上就是前端项目容器化Docker打包部署方式详解的详细内容,更多关于前端项目容器化Docker打包部署的资料请关注脚本之家其它相关文章!

相关文章

  • docker images的常用方式

    docker images的常用方式

    这篇文章主要介绍了docker images的常用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-11-11
  • 关于docker compose安装redis集群的问题(集群扩容、集群收缩)

    关于docker compose安装redis集群的问题(集群扩容、集群收缩)

    这篇文章主要介绍了docker compose安装redis集群、集群扩容、集群收缩,主要包括redis配置信息模板,编写批量生成配置文件脚本的相关命令,需要的朋友参考下吧
    2022-03-03
  • 详解Docker私有仓库Registry的搭建验证

    详解Docker私有仓库Registry的搭建验证

    这篇文章主要介绍了详解Docker私有仓库Registry的搭建验证,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-05-05
  • Docker 教程之Docker Hub详细介绍

    Docker 教程之Docker Hub详细介绍

    这篇文章主要介绍了Docker 教程之Docker Hub详细介绍的相关资料,需要的朋友可以参考下
    2016-12-12
  • Docker部署Node.js的方法步骤

    Docker部署Node.js的方法步骤

    这篇文章主要介绍了Docker部署Node.js的方法步骤。小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-11-11
  • iptables使用及docker的iptables规则

    iptables使用及docker的iptables规则

    Docker在创建容器时,会自动添加一些iptables规则来实现网络隔离和转发等功能,本文主要介绍了iptables使用及docker的iptables规则,具有一定的参考价值,感兴趣的可以了解一下
    2023-12-12
  • 使用docker在linux环境中部署springboot包的教程

    使用docker在linux环境中部署springboot包的教程

    这篇文章主要介绍了使用docker在linux环境中部署springboot包,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-03-03
  • Docker 部署 Minio 对象存储服务器的过程详解

    Docker 部署 Minio 对象存储服务器的过程详解

    Minio是一个轻量级的应用程序,可以在各种环境中运行,包括公共云、私有云和混合云,这篇文章主要介绍了Docker 部署 Minio 对象存储服务器的过程详解,需要的朋友可以参考下
    2024-07-07
  • docker批量删除临时镜像

    docker批量删除临时镜像

    在开发的时候,需要经常发布开发包,在使用docker build构建镜像的时候,同一个版本经常会使用相同tag,频繁打包一段时间后,本地会出现很多Tag=<none>的临时镜像,下面给大家分享相关命令docker批量删除Tag=<none>的临时镜像,感兴趣的朋友一起看看吧
    2024-07-07
  • 使用Docker进行node开发时实现热加载功能

    使用Docker进行node开发时实现热加载功能

    这篇文章主要介绍了使用docker进行vue、react或者node开发时实现热加载功能,即宿主机文件修改之后实时刷新或者实时重启服务,文中通过代码示例介绍的非常详细,具有一定的参考价值,需要的朋友可以参考下
    2024-09-09

最新评论