这篇文章是在上篇在CentOS中使用Docker安装Java开发环境的基础上创作的,首先需要针对若依项目的要求修改nacos和nginx的配置文件,新安装运行jar包的容器jdk8和对象存储容器minio,然后将前后端项目打包部署,最后进行测试。
1.修改nacos的配置文件
1.在mysql中创建数据库ry-cloud并导入数据脚本ry_20231130.sql和quartz.sql
2.在mysql中创建数据库ry-config并导入数据脚本ry_config_20231204.sql
3.修改/home/docker/nacos/conf/application.properties文件里的数据库名称,将其从nacos改成ry-config
4.重启nacos容器
docker restart nacos
2.修改nginx的配置文件
1.修改/home/docker/nginx/conf/conf.d/default.conf里的内容为
server {
listen 80;
server_name 192.168.113.10;
location / {
root /usr/share/nginx/html/ruoyi-ui;
try_files $uri $uri/ /index.html;
index index.html index.htm;
}
location /prod-api/{
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header REMOTE-HOST $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://192.168.113.10:8080/;
}
# 避免actuator暴露
if ($uri ~ "/actuator") {
return 403;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
2.重启nginx容器
docker restart nginx
3.使用docker安装MinIO
1.创建挂载目录
mkdir -p /home/docker/minio/{config,data}
2.使用命令创建容器
docker run -d --name minio -p 9000:9000 -p 9001:9001 --privileged=true -e "MINIO_ROOT_USER=admin" -e "MINIO_ROOT_PASSWORD=admin123" -v /home/docker/minio/data:/data -v /home/docker/minio/config:/root/.minio minio/minio server --console-address ":9000" --address ":9001" /data
3.在192.168.75.10:9000打开minio的后台管理界面创建名为若依的桶,并设置桶的权限只读
4.部署前端项目
1.进入到ruoyi-ui所在目录
2.安装依赖,会生成node_modules目录
npm install --registry=https://registry.npmmirror.com
3.打包项目,会生成dist目录
npm run build:prod
4.将生成的dist目录复制到/home/docker/nginx/html下,并且将dist目录改名为ruoyi-ui
5.准备后端项目
1.使用idea将项目打开,使用maven安装依赖
2.使用全局搜索,修改后端项目里的localhost或者127.0.0.1为虚拟机ip
3.在ruoyi-gateway模块中修改bootstrap.yml配置文件里的sentinel控制台的端口为8858
4.修改数据库ry-cloud下表sys_menu中的三个控制台的ip和端口
5.在nacos中修改各个微服务的配置文件,主要修改MySQL的密码,Redis的密码
6.在nacos中修改ruoyi-file-dev.yml这个配置文件里的minio相关配置,以及将@Primary注解从LocalSysFileServiceImpl类上放到MinioSysFileServiceImpl类上
7使用Maven将项目打包,然后将所有jar包放到/home/docker/jdk8/jars下
8在/home/docker/jdk8/jars下创建startup.sh文件,内容如下
#!/bin/bash
JAR_DIR="/home/jdk8/jars"
for jar in "$JAR_DIR"/*.jar
do
if [ -f "$jar" ]; then
nohup java -Dfile.encoding=UTF-8 -jar "$jar" >/dev/null 2>&1 &
echo "正在运行: $jar"
fi
done
echo "所有JAR包已在后台启动。"
tail -f /dev/null
6.使用docker安装jdk8
1.启动容器jdk8(挂载目录已经在上一步中准备好了)
docker run -itd -p 8080:8080 -p 9100:9100 -v /home/docker/jdk8/jars:/home/jdk8/jars --name jdk8 amazoncorretto:8u402
2.进入容器中
docker exec -it jdk8 bash
3.进入初始化文件所在目录并运行初始化文件
cd /home/jdk8/jars
sh startup.sh