首页 > 其他分享 >前端项目容器化(Docker)打包部署

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

时间:2023-11-19 10:57:36浏览次数:34  
标签:容器 web xxc nginx html Docker docker 打包

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

新建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

标签:容器,web,xxc,nginx,html,Docker,docker,打包
From: https://www.cnblogs.com/XuXiaoCong/p/17841711.html

相关文章

  • 2023最新!docker于centos7下的安装配置
    2023最新!docker于centos7下的安装配置导航目录2023最新!docker于centos7下的安装配置导航一、安装前的环境配置检查自己版本,必须是centos7以及以上版本cat/etc/redhat-release卸载旧版本(如果之前没有安装过,这步可以忽略)yum安装gcc相关安装需要的软件包设置镜像源更新yum软件包......
  • Docker部署Excalidraw | 一个功能齐全、操作简单的画板
    一、介绍界面简洁,交互细致,上手简单,操作习惯和大部分制图软件相似免注册,支持中文界面,打开浏览器就能开始画图支持众多键盘快捷键操作,配合鼠标能快速画图(适配触摸屏)内容安全受保护,Excalidraw采用端到端加密,绘图内容不会上传到服务器支持通过网页链接共享协作二、部署Excalid......
  • docker跑mongo主从复制
    docker跑mongo主从复制这是docker-compose.ymlversion:'3.1'services:mongo:container_name:'mongo'hostname:'mongo'image:mongorestart:alwaysvolumes:-./root/mongo:/root/mongo-./root/mon......
  • Docker部署Excalidraw | 一个功能齐全、操作简单的画板
    一、介绍界面简洁,交互细致,上手简单,操作习惯和大部分制图软件相似免注册,支持中文界面,打开浏览器就能开始画图支持众多键盘快捷键操作,配合鼠标能快速画图(适配触摸屏)内容安全受保护,Excalidraw采用端到端加密,绘图内容不会上传到服务器支持通过网页链接共享协作二、部署Excalid......
  • Dockerfile及docker简单使用
    Dockerfile个人使用总结Dockerfile的编写FROMpython#从基础镜像开始构建COPY./app#复制文件到镜像层WORKDIR/app#指定工作目录EXPOSE80#暴露端口供外部使用RUNpipinstall-rrequirements.txt#构建镜像时的命令,一个RUN构建一层,因此......
  • Docker部署home-page | 一个极简导航页
    一、介绍一款极简且功能足够你使用的个人导航网页二、搭建home-page绿联DX4600为例,首先我们打开Docker管理器,进入镜像管理,然后在镜像仓库中搜索kahosan/home-page​,选择latest​版本并下载。​​下载完成后,我们在本地镜像中找到刚刚下载的镜像,点击创建容器,起一个英文......
  • Docker部署home-page | 一个极简导航页
    一、介绍一款极简且功能足够你使用的个人导航网页二、搭建home-page绿联DX4600为例,首先我们打开Docker管理器,进入镜像管理,然后在镜像仓库中搜索kahosan/home-page​,选择latest​版本并下载。​​下载完成后,我们在本地镜像中找到刚刚下载的镜像,点击创建容器,起一个英文......
  • Windows7使用docker
    Windows7使用docker注:win10可以下载桌面版,详情看官网1、安装win7需要dockertoolbox进行安装,但官网以前有,现在没了,所以要去菜鸟教程给的地址下载:[阿里镜像](Indexof/docker-toolbox/windows/docker-toolbox/(aliyun.com))下载后直接安装,selectcomponents最好勾上没有的安......
  • Qt打包成文件夹包含可执行文件.exe
    这里使用Qt自带命令打包1.以release方式编译源代码。 2.编译成功后项目文件夹下会有一个Release后缀的构建项目,进入该目录,将其中的.exe可执行文件复制到一个单独的文件夹下。 3.选择安装Qt时自带的终端,进入刚才复制的文件夹路径下,这里我使用命令cd/dD:/Qttest才能成......
  • 将Java项目打包成exe可执行文件
    将Java项目打包成exe可执行文件这里将以idea中项目打包成exe可执行文件为例‍所选工具IDEA,JDK,exe4j‍IDEA官网JDK安装教程exe4j下载地址准备工作首先确保该程序能够正常运行​​‍打包流程简述把java项目打包成exe可执行文件简单来说只要两个步......