Docker 部署Vue前端服务

1、首先配置 代码 编译时候使用gzip压缩,减少服务器压力

 以vue3 为例子 vite.config.ts 文件

// @ts-ignore
import path from 'path';
import { defineConfig } from 'vite';
import vue from '@vitejs/plugin-vue';
import eslintPlugin from 'vite-plugin-eslint';
import vueJsx from '@vitejs/plugin-vue-jsx';
// gizp
// @ts-ignore
import viteCompression from 'vite-plugin-compression';

function _resolve(dir: string) {
  return path.resolve(__dirname, dir);
}

// https://vitejs.dev/config/
export default ()=>defineConfig({
  css: {
    preprocessorOptions: {
      scss: {
        additionalData: `@import "./src/styles/variables.scss";`,
      },
    },
  },
  plugins: [
    viteCompression(),
    vue(),
    vueJsx(),
    eslintPlugin({

    }),
  ],
  resolve: {
    alias: {
      '@': _resolve('./src/'),
    },
  },
});

2.编写Dockerfile

FROM suteqa/go-web
COPY ./dist/ /html/

## 以下代码是traefik 配置, 不使用可以删除
LABEL traefik.enable=true
LABEL traefik.http.routers.im-web.entrypoints=websecure
LABEL traefik.http.routers.im-web.rule=Host(`im-web.idb.com.cn`)
LABEL traefik.http.services.im-web.loadbalancer.server.port=9090

3.构建项目

#!/bin/bash -il

#1 安装依赖

cnpm i

#2 构建

cnpm run build

#3 创建临时目录(可以避免打包时候扫描 node_modules),以及拷贝需要包的文件

mkdir _temp

mv dist _temp/
cp Dockerfile _temp/
cd _temp


##4 构建镜像
docker build  -t im-mobile-web .


##5. 运行镜像 - 镜像内部服务为9090端口-映射出外网的80端口
docker run -d --name im-mobile-web  \
  --net proxy \

  -p 80:9090  \
  --restart=always  \
  im-mobile-web
  
##6. 删除临时目录  
cd ../
rm -rf _temp

查看docker images 查看镜像

 访问服务 IM-WEBhttps://im-web.idb.com.cn/

 项目源码

im-mobile-web: vue3+elementPlus +ts 管理端,路由配置菜单,小程序聊天管理端

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值