使用 Docker 部署 RuoYi 框架的 Jar 包是一个高效且标准化的方法,能够确保应用在不同环境中的一致性。以下是详细的步骤指南,帮助你在本地或生产环境中使用 Docker 部署 RuoYi 框架的 Jar 包。
1. 准备环境
1.1 安装 Docker
确保你的系统上已经安装了 Docker。如果尚未安装,请访问 Docker 官网 下载并安装适合你操作系统的 Docker 版本。
1.2 克隆 RuoYi 项目
使用 Git 克隆 RuoYi 项目的最新版本:
bash
git clone https://gitee.com/y_project/RuoYi-Vue.git
进入项目目录:
bash
cd RuoYi-Vue
2. 修改配置文件
2.1 修改 MySQL 配置
编辑 ruoyi-admin/src/main/resources/application-druid.yml
文件,修改 MySQL 的连接配置:
yaml
spring:
datasource:
druid:
url: jdbc:mysql://mysql:3306/ry-vue?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
username: ruoyi
password: ruoyi
2.2 修改 Redis 配置
编辑 ruoyi-admin/src/main/resources/application.yml
文件,修改 Redis 的连接配置:
yaml
spring:
redis:
host: redis
port: 6379
password: ruoyi
database: 0
3. 编写 Dockerfile
在项目根目录下创建一个名为 Dockerfile
的文件,内容如下:
bash
# 使用官方的 OpenJDK 镜像作为基础镜像
FROM openjdk:11-jre-slim
# 设置工作目录
WORKDIR /app
# 将 Jar 包复制到容器中
COPY target/ruoyi-admin.jar /app/ruoyi-admin.jar
# 暴露应用程序端口
EXPOSE 8080
# 启动应用程序
ENTRYPOINT ["java", "-jar", "/app/ruoyi-admin.jar"]
4. 构建 Java 项目
4.1 构建 Jar 包
在项目根目录中运行 Maven 命令来构建 Jar 包:
go
mvn clean package -DskipTests
4.2 构建 Docker 镜像
在项目根目录中运行以下命令来构建 Docker 镜像:
erlang
docker build -t ruoyi-app .
5. 配置 Docker Compose
5.1 创建 docker-compose.yml
文件
在项目根目录中创建一个名为 docker-compose.yml
的文件,内容如下:
yaml
version: '3.8'
services:
app:
image: ruoyi-app
ports:
- "8080:8080"
depends_on:
- db
- redis
environment:
SPRING_DATASOURCE_URL: jdbc:mysql://db:3306/ry-vue?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
SPRING_DATASOURCE_USERNAME: ruoyi
SPRING_DATASOURCE_PASSWORD: ruoyi
SPRING_REDIS_HOST: redis
SPRING_REDIS_PORT: 6379
SPRING_REDIS_PASSWORD: ruoyi
SPRING_REDIS_DATABASE: 0
db:
image: mysql:5.7
environment:
MYSQL_ROOT_PASSWORD: ruoyi
MYSQL_DATABASE: ry-vue
MYSQL_USER: ruoyi
MYSQL_PASSWORD: ruoyi
volumes:
- db-data:/var/lib/mysql
ports:
- "3306:3306"
redis:
image: redis:alpine
command: redis-server --requirepass ruoyi --appendonly yes
volumes:
- redis-data:/data
ports:
- "6379:6379"
volumes:
db-data:
redis-data:
6. 启动 Docker Compose
在包含 docker-compose.yml
文件的目录中运行以下命令来启动所有服务:
docker-compose up -d
其中 -d
表示后台运行。
7. 访问 RuoYi 应用
打开浏览器,访问 http://localhost:8080
,你应该能看到你的 RuoYi 应用程序的响应。
8. 管理 Docker 容器和镜像
8.1 列出所有运行的容器
docker ps
8.2 列出所有容器(包括停止的)
css
docker ps -a
8.3 停止容器
arduino
docker stop <container-id>
8.4 删除容器
bash
docker rm <container-id>
8.5 列出所有镜像
docker images
8.6 删除镜像
arduino
docker rmi <image-id>
9. 高级配置
9.1 使用环境变量
通过环境变量可以灵活配置应用程序,避免硬编码。在 docker-compose.yml
中定义环境变量:
yaml
environment:
SPRING_PROFILES_ACTIVE: prod
9.2 数据持久化
使用 Docker 卷(Volume)可以实现数据的持久化,避免数据丢失。在 docker-compose.yml
中定义卷,并挂载到容器中:
kotlin
volumes:
- db-data:/var/lib/mysql
- redis-data:/data
10. 总结
通过以上步骤,你可以在本地或生产环境中成功使用 Docker 部署 RuoYi 框架的 Jar 包。Docker 的轻量级、可移植和高效的特点使得开发者可以在任何支持 Docker 的环境中快速搭建和运行应用。希望这些步骤对你有所帮助,祝你在 Docker 学习和实践中取得成功!