文章目录
- 一、实现原理
- 1. 镜像制作个数
- 2. 调用流程
- 3. 调用流程分析
- 二、前期准备
- 2.1. 克隆项目到本地
- 2.2. 修改数据库连接和容器别名
- 2.3. 修改请求地址为容器别名(后端)
- 三、 修改请求地址为容器别名(前端)
- 3.1. 环境配置
- 3.2. 安装依赖
- 3.3. 打包编译
- 四、制作镜像准备
- 4.1. 项目打包
- 4.2. 包上传
- 4.3. 制作Dockerfile
- 4.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@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. 后台服务验证
http://192.168.60.128:8988/
6.2. 前台门户服务验证