基于Vue和Quasar的前端SPA我的项目实战之docker部署(八)
回顾
通过上一篇文章 基于Vue和Quasar的前端SPA我的项目实战之业务数据(七)的介绍,crudapi-admin-web基本功能全副实现了,本文次要介绍前端打包和docker部署相干内容。
简介
Docker是一个开源的利用容器引擎,让开发者能够打包他们的利用以及依赖包到一个可移植的镜像中,而后公布到任何风行的 Linux或Windows 机器上,也能够实现虚拟化。容器是齐全应用沙箱机制,相互之间不会有任何接口。采纳docker技术能够很不便地实现继续集成和交付CI/CD。
配置quasar.conf.js
build: { vueRouterMode: 'history', publicPath: '/crudapi/', distDir: `dist/${ctx.modeName}/crudapi`}
通常将前端打包之后的文件放在一个子目录下,不便和其它系统集成,比方能够放在spring boot我的项目的resources/static/crudapi目录下,防止放在根目录,所以这里配置publicPath为crudapi。
Dockefile
FROM node:lts-alpine as builderCOPY package.json /crudapi-admin-web/package.jsonWORKDIR /crudapi-admin-webRUN npm installCOPY . /crudapi-admin-web/WORKDIR /crudapi-admin-webRUN npm run buildFROM nginx:latestWORKDIR /crudapi-admin-webCOPY --from=builder /crudapi-admin-web/dist/spa .COPY ./docker/default.conf /etc/nginx/conf.d/default.confEXPOSE 80
构建分为两个阶段:
- 利用node镜像编译打包
- 利用nginx镜像裸露80端口,提供http服务
优化:
package.json放在第一步copy,目标是为了缓存,从而进步镜像构建速度,因为通常状况下package.json不会频繁批改,只有package.json不变,前面的npm install命令就不会反复构建。
nginx配置
server { listen 80; server_name localhost; charset 'utf-8'; error_page 500 502 503 504 /50x.html; location = /50x.html { root /usr/share/nginx/html; } location ~ /api { proxy_pass http://demo.crudapi.cn; } location / { root /crudapi-admin-web; index index.html index.htm; try_files $uri $uri/ /crudapi/index.html; }}
default.conf中次要配置两个location规定
- api局部转发到http://demo.crudapi.cn,能够替换为其它无效地址
- 其它内容永远拜访/crudapi-admin-web/crudapi/index.html,vue外部主动解决路由
.dockerignore配置
.DS_Store.git.gitignorenode_modulesdist.quasar.vscode.dockerignorepackage-lock.jsonDockerfile*.md
dockerignore排除的不须要的文件,防止构建过程中copy无用文件。
docker命令
本地打包docker和运行
docker build -t crudapi-admin-web:latest .docker rm -f crudapi-admin-webdocker run -d -p 80:80 --name crudapi-admin-web crudapi-admin-web:latestdocker ps | grep crudapi-admin-web
最新的docker镜像曾经主动上传到docker官网hubhttps://hub.docker.com/repository/docker/crudapi/crudapi-admin-web,间接pull也能够。
docker pull crudapi/crudapi-admin-web:latestdocker tag crudapi/crudapi-admin-web:latest crudapi-nginx:latest
进行验证
拜访 http://127.0.0.1/crudapi
小结
本文次要介绍了vue前端打包和docker部署相干内容,到目前为止,crudapi-admin-web代码曾经实现,后续会持续优化代码,文档也会继续更新。每一篇文章对应的代码,都打上了tag,命名规定为t1,t2..., 欢送下载代码学习和交换。
demo演示
官网地址:https://crudapi.cn
测试地址:https://demo.crudapi.cn/crudapi/login
附源码地址
GitHub地址
https://github.com/crudapi/crudapi-admin-web
Gitee地址
https://gitee.com/crudapi/crudapi-admin-web
因为网络起因,GitHub可能速度慢,改成拜访Gitee即可,代码同步更新。