一、实现原理
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@gitee.com: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.liu
FROM java:8
EXPOSE 8988
MAINTAINER bruce.liu <463805737@qq.com>
ENV TZ=Asia/Shanghai
RUN ln -sf /usr/share/zoneinfo/{TZ} /etc/localtime && echo '{TZ}' > /etc/timezone
ADD flow-admin.jar /flow-admin.jar
RUN 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.liu
FROM java:8
EXPOSE 8990
MAINTAINER bruce.liu <463805737@qq.com>
ENV TZ=Asia/Shanghai
RUN ln -sf /usr/share/zoneinfo/{TZ} /etc/localtime && echo '{TZ}' > /etc/timezone
ADD flow-front-rest.jar /flow-front-rest.jar
RUN 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-admin
docker logs -f flow-portal
5.5. 查看运行中的容器
docker ps
六、服务验证
6.1. 后台服务验证
6.2. 前台门户服务验证