全部开发者教程

企业级在线办公系统

上节课我们在Docker环境中安装了数据库和RabbitMQ,感觉还挺不错的。用一条语句就能创建好容器,里面包含了我们想要的程序,省去了很多安装的时间和步骤。这节课我们要在Docker环境中部署后端Java项目。

一、部署后端项目

1. 下载JDK镜像

我们本地电脑用的是15.0.2版本的JDK,所以在Docker中部署后端项目也要用这个版本的JDK,那么咱们就先把JDK镜像给下载一下。

docker pull openjdk:15.0.2-oraclelinux7

# 为镜像创建一个新的引用名称
docker tag openjdk:15.0.2-oraclelinux7 jdk15

# 删除原有引用名
docker rmi openjdk:15.0.2-oraclelinux7

2. 部署工作流项目

在云主机的root目录中,创建workflow文件夹,然后把emos-workflow.jarapplication.yml文件上传到该目录中。

application.yml文件中的MySQL和Redis连接必须要写成localhost,不要写IP地址。因为将来我们要关闭外网访问数据库端口,所以我们用localhost访问云主机本地的数据库是不受影响的。

图片描述

接下来执行命令创建Docker容器,运行工作流项目。因为启动日志输出到out.log文件中,所以我们等待2分钟,然后打开这个日志文件,看看有没有报错信息。如果一切正常,说明该项目已经成功的启动了。

docker run -it -d --name=workflow --net=host -m 1g \
-e TZ=Asia/Shanghai \
-v /root/workflow:/root/workflow jdk15

#进入Java容器
docker exec -it workflow bash

#访问容器中的workflow文件夹
cd /root/workflow

#运行工作流项目
nohup  java -jar -Dfile.encoding=utf-8 emos-workflow.jar --spring.config.location=application.yml  >> out.log 2>&1 &

3. 部署emos-api项目

在云主机的root目录中,创建emos-api目录,然后把打包好的emos-api.jarapplication.yml文件上传到该目录。依然要把application.yml文件中的数据库连接部分换成localhost才可以。

图片描述
我们要在云主机的/root/emos-api文件夹中放入apiclient_cert.p12这个微信支付文件,然后接收审批结果的recieveNotify和工作流的url都要改成localhost才可以。

图片描述
接下来执行命令创建Docker容器,运行后端项目。

docker run -it -d --name=emos_api --net=host -m 2g \
-e TZ=Asia/Shanghai \
-v /root/emos-api:/root/emos-api jdk15

#进入Java容器
docker exec -it emos_api bash

#访问容器中的emos-api文件夹
cd /root/emos-api

#运行工作流项目
nohup  java -jar -Dfile.encoding=utf-8 emos-api.jar --spring.config.location=application.yml  >> out.log 2>&1 &

二、更换授权码

如果你要更换emos-api项目中授权码,首先需要把emos_api容器停下来。

docker stop emos_api

进入云主机的/root/emos-api路径,把里面application.yml文件中的codeicode修改成最新的。然后重新启动emos_api容器,并且运行其中的Java项目。

docker start emos_api

#进入Java容器
docker exec -it emos_api bash

#访问容器中的emos-api文件夹
cd /root/emos-api

#运行工作流项目
nohup  java -jar -Dfile.encoding=utf-8 emos-api.jar --spring.config.location=application.yml  >> out.log 2>&1 &