文章目录
一、实现原理1. 镜像制作个数2. 调用流程3. 调用流程分析二、前期准备2.1. 克隆项目到本地2.2. 修改数据库连接和容器别名2.3. 修改请求地址为容器别名(后端)三、 修改请求地址为容器别名(前端)3.1. 环境配置3.2. 安装依赖3.3. 打包编译四、制作镜像准备4.1. 项目打包4.2. 包上传4.3. 制作Dockerfile4.4. 制作后台镜像4.5. 制作前台门户镜像4.6. 拉取mysql镜像4.7. 查看镜像五、创建容器并启动5.1. 创建并运行mysql容器5.2. 创建并运行后台容器5.3. 创建并运行前台门户容器5.4. 查看启动日志5.5. 查看运行中的容器六、服务验证6.1. 后台服务验证6.2. 前台门户服务验证一、实现原理
1. 镜像制作个数
组成部分:后台流程引擎、前台门户、mysql数据库
2. 调用流程
3. 调用流程分析
1.首先把前台门户、后台、mysql单独制作成一个镜像2.让前台门户镜像可以和mysql镜像之间通信让后台镜像可以和mysql镜像之间通信让前台门户、后台镜像、mysql镜像三者之间互相通信3.实现docker容器之间通信的方案容器之间:添加链接--link参数案例:docker run -p 8080:8080 -p 9326:9326 --name eblog --link es_643:ees --link myrabbit:erabbit --link mymysql:emysql --link myredis:eredis -d eblog解析: -p 8080:8080 -p 9326:9326 :9326是因为即时聊天需要用到的ws端口 --link es_643:ees 表示关联容器,把容器es_643起别名为ees,--link的作用就相当于在容器es_643的/etc/hosts中添加了一条容器名与ip的映射关系。以后eblog 容器就可以直接使用容器名与es_643进行通信了。
二、前期准备
2.1. 克隆项目到本地
命令克隆项目
git clone git@:lwj/flow.git
2.2. 修改数据库连接和容器别名
将数据库连接调整为接下来容器的数据库地址
将mysql数据库容器别名替换为ip地址
2.3. 修改请求地址为容器别名(后端)
三、 修改请求地址为容器别名(前端)
3.1. 环境配置
3.2. 安装依赖
# 在NPM 中安装npm install -g yarn# 安装依赖yarn install
若出现此异常:‘yarn‘ 不是内部或外部命令,也不是可运行的程序
3.3. 打包编译
cd C:\Users\Administrator.DESKTOP-I5SJ4CK\Desktop\flow\flow-front-ui# 执行编译打包vite build && esno ./build/script/postBuild.ts
四、制作镜像准备
4.1. 项目打包
mvn clean package -Dmaven.test.skip=true
4.2. 包上传
4.3. 制作Dockerfile
后台
vim Dockerfile添加内容如下:# Docker image for springboot file run# VERSION 1.0.0# Author: bruce.liuFROM java:8EXPOSE 8988MAINTAINER bruce.liu <463805737@>ENV TZ=Asia/ShanghaiRUN ln -sf /usr/share/zoneinfo/{TZ} /etc/localtime && echo '{TZ}' > /etc/timezoneADD flow-admin.jar /flow-admin.jarRUN bash -c 'touch /flow-admin.jar'ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/flow-admin.jar"]
前台门户
vim Dockerfile添加内容如下:# Docker image for springboot file run# VERSION 1.0.0# Author: bruce.liuFROM java:8EXPOSE 8990MAINTAINER bruce.liu <463805737@>ENV TZ=Asia/ShanghaiRUN ln -sf /usr/share/zoneinfo/{TZ} /etc/localtime && echo '{TZ}' > /etc/timezoneADD flow-front-rest.jar /flow-front-rest.jarRUN bash -c 'touch /flow-front-rest.jar'ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/flow-front-rest.jar"]
4.4. 制作后台镜像
cd /app/admin/docker build -t flow-admin:1.0 .
4.5. 制作前台门户镜像
cd /app/portal/docker build -t flow-portal:1.0 .
4.6. 拉取mysql镜像
# 拉取mysql5.7.27镜像docker pull mysql:5.7.27
4.7. 查看镜像
docker images
五、创建容器并启动
5.1. 创建并运行mysql容器
docker run --name mymysql -e MYSQL_ROOT_PASSWORD=123456 -d -p 3306:3306 mysql:5.7.27
5.2. 创建并运行后台容器
docker run -p 8988:8988 --name flow-admin --link flowmysql:flowmysql -d flow-admin:1.0
若遇到此异常:
项目启动时flowable报错提示 version mismatch: library version is *, db version is *
5.3. 创建并运行前台门户容器
docker run -p 8990:8990 --name flow-portal --link flowmysql:flowmysql --link flow-admin:flow-admin -d flow-portal:1.0
5.4. 查看启动日志
docker logs -f flow-admindocker logs -f flow-portal
5.5. 查看运行中的容器
docker ps
六、服务验证
6.1. 后台服务验证
http://192.168.60.128:8988/