前后端分离的情况下,使用目前非常流行的Vue作为前端框架,SpringBoot作为后端框架,再利用iView的Steps组件和Docker容器技术,构建一个基础的工作流案例。
前言
先上案例源代码: liumapp/file-workflow
前端项目在flow-ui下,后端项目在flow-service下。
利用Docker-compose了将后端项目和前端项目部署在Docker下,因为Vue单独运行需要nodejs环境支持,所以在Docker下额外添加了Nginx进行前端项目的支持。
Nginx的配置文件和日志及www目录部署在nginx目录下。
环境配置
直接上docker-compose.yml代码:
liumapp/flow-service:v1.0.0需要从flow-service下,利用mvn编译后生成,不能直接从docker hub中拉取,所以需要先运行./build-image.sh安装镜像。
并且在docker-compose down之后,mvn编译生成的docker image也不会自动删除,所以需要运行./rm-image.sh进行手动删除。
配置Nginx,并将flow-ui下的vue项目在npm run build之后,将dist下的内容拷贝到./nginx/www/flowui下。
配置docker容器内的网络。
后端
后端代码部署在/flow-service下,是一个标准的springboot web项目。
需要注意一点,前端上传的图像、文件信息是存放在/pic下,但是这个/pic目录,是表示docker容器内的pic目录,这个目录利用了volumes与./flow-service/pic建立了映射关系。
所以前端上传的图片实际是存放在./flow-service/pic下。
前端
前端代码部署在/flow-ui下,是一个标准的vue2.0项目。
与后端交互的接口配置在/src/libs/util.js下。
需要注意一点,如果对flow-ui进行了改动,重新编译后,如果需要在docker下运行最新的效果,需要将编译好的dist目录下的文件copy到/nginx/www/flowui下。
如果不希望让前端项目在docker下运行,直接在宿主机的nodejs环境下启动也是可以的,并不需要做额外的改动,只需要在docker-compose.yml下,将nginx的相关配置注释掉即可(事实上不在意80端口被占用的话,不注释也是可以的)。
结尾
项目运行的效果,及源码都非常简单,在项目的README下都有直观的体现。
最好的赞赏
就是你的关注
领取专属 10元无门槛券
私享最新 技术干货