当前位置: 首页 > ai >正文

docker部署ruoyi系统

第一步   安装docker 

#安装前先卸载操作系统默认安装的docker,
sudo apt-get remove docker docker-engine docker.io containerd runc#安装必要支持
sudo apt install apt-transport-https ca-certificates curl software-properties-common gnupg lsb-release

准备安装

#添加 Docker 官方 GPG key (可能国内现在访问会存在问题)
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg# 阿里源(推荐使用阿里的gpg KEY)
curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg#添加 apt 源:
#Docker官方源
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null#阿里apt源
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null#更新源
sudo apt update
sudo apt-get update

安装

#安装最新版本的Docker
sudo apt install docker-ce docker-ce-cli containerd.io
#等待安装完成#查看Docker版本
sudo docker version#查看Docker运行状态
sudo systemctl status docker

第二步 拉取镜像

docker pull java:8
docker pull mysql:8.0.19
docker pull redis:6.0.8
docker pull nginx:1.18.0

第三步:后端部署

启动MySQL容器

docker run --name mysql -v /myapp/mysql:/var/lib/mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -d mysql:8.0.19


# MYSQL_ROOT_PASSWORD=123456设置密码为‘123456’,可根据具体需求自行修改
# /myapp/mysql:/var/lib/mysql mysql路径容器挂载,可根据具体需求自行修改
 

启动Redis容器

docker run -d --name redis -p 6379:6379 redis:6.0.8 

# requirepass "123456"设置密码为‘123456’,可根据具体需求自行修改  若依项目里面的redis没有设置密码,这里不添加requirepass

将数据导入容器MySQL

方法一:将原来项目中的数据库转储为SQL文件,在将这个文件放入linux中,再使用容器内的mysql将其导入

# 1、查看容器id
docker ps -a 
# 2、进入容器
docker exec -it [容器ID/容器名] /bin/bash
# 3、进入容器后登录MySQL
mysql -u root -p
# 4、新建数据库,进入数据库
create databases pscs
use pscs
show databases
# 5、导入数据
source /var/lib/mysql/cat.sql;
 方法二  使用可视化工具导入数据

通过可视化工具navicat通过ip连接服务器数据库,新建数据库,运行sql文件导入数据(需要先将vue项目的数据库转储为SQL文件)

转储完成以后使用刚刚连接到服务器的数据库,运行这个SQL文件

修改springboot配置文件,打包上传服务器

在application.yml中,修改redis的信息,将host改为linux的ip,port端口号(redis开放的端口号,一般为6379),password密码(前面配置redis时设置的密码),我没有设置密码,所以密码不用改这里。

在application-druid.yml中对MySQL数据库配置信息进行修改

         如果linux中的mysql数据库名字和项目中的数据库名字一致则不需要修改,否则将项目中的数据库名改为和linux的数据库一致,linux的数据库名是pscs,这里不需要修改。

之后打包springboot项目

先clean项目,再install 注意!!!!!:如果这一步出错也可以使用Lifecycle中的install进行打包

 

打包完成之后Jar包在本项目下的ruoyi-admin\target\下,名为ruoyi-admin.jar

 

在linux中新建一个文件夹,将打包好的jar包上传至文件夹中,并创建一个Dockerfile文件

Dockerfile中写入

#基础镜像使用jdk1.8
FROM java:8#作者
MAINTAINER pan# VOLUME 指定临时文件目录为/tmp,在主机/var/lib/docker目录下创建了一个临时文件并链接到容器的/tmp
VOLUME /tmp# 将jar包添加到容器中并更名
ADD ruoyi-admin.jar app.jar# 运行jar包
RUN bash -c 'touch /app.jar'# 为了缩短 Tomcat 启动时间,添加一个系统属性指向 “/dev/./urandom” 作为 Entropy Source
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]#ENTRYPOINT ["nohup","java","-jar","/data/cat/ruoyi-admin.jar","&"]#暴露8080端口,后端系统启动端口
EXPOSE 8080

在Dockerfile所在目录下构建镜像

docker build -t network:1.0 .

启动后端镜像

# 启动后端镜像
docker  run -d --name cat -p 8080:8080 network:1.0
# 查看后端镜像启动
docker ps -a
# 如启动失败可进入日志查看失败原因、
docker logs -f -t --tail 1000 [容器ID]

如果失败了,检测防火墙是否放行

前端部署:(参考博客 Ubuntu使用docker部署ruoyi系统)

因为需要nginx的初始化配置文件,为了保证不出错,
所以我们直接启动一个nginx容器,把配置文件拉取下来,然后删除容器

http://www.xdnf.cn/news/2329.html

相关文章:

  • Rule.resourceQuery(通过路径参数指定loader匹配规则)
  • 【音视频】FFmpeg过滤器框架分析
  • django.db.models.query_utils.DeferredAttribute object
  • PDF嵌入图片
  • python连接Elasticsearch并完成增删改查
  • 游戏遭遇DDoS攻击如何快速止损?实战防御策略与应急响应指南
  • 百度Create大会深度解读:AI Agent与多模态模型如何重塑未来?
  • PostgreSQL的扩展 pgcrypto
  • 全场景婴幼儿托育服务与管理实训室建设方案
  • 鸿蒙版电影app设计开发
  • 【Quest开发】透视环境下抠出身体并能遮挡身体上的服装
  • 【前端基础】viewport 元标签的详细参数解析与实战指南
  • Milvus(8):密集向量、二进制向量、稀疏向量
  • 烽火HG680-MC_晨星MSO9385芯片-2+8G_安卓9.0_不分地区通刷卡刷固件包
  • Java面向对象:抽象类详解
  • Linux文件操作
  • 如何避免爬虫因Cookie过期导致登录失效
  • 视觉/深度学习/机器学习相关面经总结(2)(持续更新)
  • vscode vue 的插件点击组件不能跳转到文件问题解决
  • LeetCode13_罗马数字转整数
  • OpenVLA:大语言模型用于机器人操控的经典开源作品
  • 界面打印和重定向同时实现
  • 多级缓存架构设计与实践经验
  • 决策树随机深林
  • Mysql从入门到精通day6————时间和日期函数精讲
  • PDF嵌入隐藏的文字
  • [ACTF2020 新生赛]Upload
  • DeepSeek智能时空数据分析(五):基于区域人口数量绘制地图散点-大模型搜集数据NL2SQL加工数据
  • Python对比两张CAD图并标记差异的解决方案
  • 第5章 数据库系统(选择|案例|论文)(重点★★★★★)