RuoYi后端jar镜像制作

环境准备

复制代码
1.先下载java17和maven3.9.9
docker run -it --rm -v /opt/ruoyi/RuoYi-Vue:/vue maven:3.9.9-eclipse-temurin-17 /bin/bash -c "cd /vue && mvn clean package -DskipTests"
查看 jar 包
ls -lh /root/RuoYi-Vue/ruoyi-admin/target/ruoyi-admin.jar

制作 Docker 镜像

第一步:准备 Dockerfile 文件

复制代码
# 1. 创建目录
mkdir -p /opt/ruoyi/java

# 2. 复制 jar 包
cp /root/RuoYi-Vue/ruoyi-admin/target/ruoyi-admin.jar /opt/ruoyi/java/

# 3. 进入目录
cd /opt/ruoyi/java

# 4. 创建 Dockerfile
cat > Dockerfile << 'EOF'
FROM openjdk:8u342
ENV TZ=Asia/Shanghai
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
WORKDIR /opt
COPY ruoyi-admin.jar /opt/app.jar
EXPOSE 8080
CMD ["java", "-jar", "app.jar"]
EOF

第二步:构建 Docker 镜像

复制代码
cd /opt/ruoyi/java
docker build -t ruoyi-admin:1.0 .

第三步:验证镜像

复制代码
docker images | grep ruoyi-admin

启动 RuoYi 后端服务

第一步:确认 MySQL 和 Redis 已运行

复制代码
# 查看 MySQL 和 Redis 状态
docker ps | grep -E "mysql|redis"

# 如果 MySQL 未运行
docker start mysql.server

# 如果 Redis 未运行
docker start redis.server

如果容器不存在,需要先创建。您之前已经创建过,应该可以直接启动。

第二步:启动后端容器

复制代码
docker run -d \
  --name ruoyi-admin \
  --network ruoyi-net \
  -p 8080:8080 \
  -e SPRING_DATASOURCE_URL="jdbc:mysql://mysql.server:3306/ry-vue?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&serverTimezone=Asia/Shanghai" \
  -e SPRING_DATASOURCE_USERNAME=root \
  -e SPRING_DATASOURCE_PASSWORD=123456 \
  -e SPRING_REDIS_HOST=redis.server \
  -e SPRING_REDIS_PORT=6379 \
  ruoyi-admin:1.0

第三步:查看启动日志

复制代码
docker logs -f ruoyi-admin

启动大约需要 10-20 秒,看到类似以下内容表示成功:

复制代码
Started RuoYiApplication in X.XXX seconds (JVM running for X.XXX)

第四步:验证服务

复制代码
# 检查容器状态
docker ps | grep ruoyi-admin

# 测试接口
curl http://localhost:8080

# 测试 Swagger 文档(如果启用)
curl http://localhost:8080/doc.html

前端搭建

复制代码
docker pull node:12

① 进入ruoyi-vue目录
cd /opt/ruoyi/RuoYi-Vue

② 启动node镜像
docker run -itd --rm -v /opt/ruoyi/RuoYi-Vue/ruoyi-ui:/opt node:12 
/bin/bash

③ 进入到此容器/opt目录下并打包前端代码
cd /opt 
npm install  (安装)

输入http://192.168.10.110/index

相关推荐
蓝桉柒72 小时前
java判断语句
java·开发语言
Zane19942 小时前
String::compareTo凭什么能当参数传?方法引用的四种形式讲透
java·后端
青山木2 小时前
Hot 100 --- 打家劫舍
java·数据结构·算法·leetcode·动态规划
敲代码的嘎仔2 小时前
28届后端开发-百人小厂面试题
java·后端·面试·程序员·秋招·实习·转正
Bs_MoneyMagnet2 小时前
基于springboot+vue的爱心众筹系统的设计与实现 源码+文档
java·vue.js·spring boot·后端·spring·管理系统
名字还没想好☜3 小时前
Java Collectors.groupingBy 进阶:多级分组、下游收集器与统计聚合一次搞定
java·windows·后端·python·spring
Wang's Blog3 小时前
Java框架快速入门: Spring Security+OAuth2之前端按钮级安全与路由守卫
java·安全·spring
ocean21033 小时前
2025-2026年Java语言及生态面试高频知识点洞察
java·开发语言·面试
2302_1113 小时前
java时间类型
java·开发语言
用户8181870627463 小时前
第25章 Redis集群脑裂实录:一次真实故障复盘
java·后端