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

相关推荐
budingxiaomoli7 小时前
Spring统一功能处理
java·后端·spring
Flynn Liang8 小时前
可观测性与成本治理:一次对话的 17 个观测点
java·langchain·可观测性·micrometer·langchain4j·token 成本·llm 监控
金銀銅鐵9 小时前
带您看懂字节码指令(三):同一行加法,为什么有四种指令
java·jvm
文丑颜不良啊13 小时前
LeetCode2821~2840题目解析
java·leetcode
apcipot_rain13 小时前
C++转Java日记(10)
java·开发语言
简 洁 冬冬14 小时前
泛型方法写法全面辨析:从「能编译」到「能跑」到「能用」
java·泛型
LGL6030A14 小时前
Java学习历程31——初识Spring Boot
java·spring boot·学习
Lansonli16 小时前
大数据Spark(八十八):Spark任务资源之Standalone集群测试
java·服务器·spark
budingxiaomoli16 小时前
Spring AOP
java·spring·java-ee
特立独行的猫A17 小时前
Ionic + 仓颉语言的 cj-tauri 开发框架实战:开发精美移动端 APP
java·后端·python