RuoYi-Vue项目Docker镜像构建、推送与部署完整流程
RuoYi-Vue项目Docker镜像构建、推送与部署流程
一、本地构建镜像
1. 使用docker-compose构建镜像
基于docker-compose.yml文件,可以一次构建所有服务镜像:
# 构建所有服务
docker-compose build# 或者构建并启动
docker-compose up -d --build
若只需构建单个服务:
# 仅构建并启动Redis服务
docker-compose up -d --build ruoyi-redis
docker-compose.yml中定义了四个服务:
- ruoyi-backend:后端服务,基于Dockerfile-backend构建
- ruoyi-frontend:前端服务,基于Dockerfile-frontend构建
- ruoyi-mysql:MySQL服务,基于Dockerfile-mysql构建
- ruoyi-redis:Redis服务,直接使用redis:6-alpine官方镜像
二、推送镜像到私有仓库
1. 为构建好的镜像打标签
# 为镜像添加私有仓库前缀
docker tag ruoyi-vue_ruoyi-backend:latest 192.168.100.10:5050/ruoyi-vue-ruoyi-backend:latest
docker tag ruoyi-vue_ruoyi-frontend:latest 192.168.100.10:5050/ruoyi-vue-ruoyi-frontend:latest
docker tag ruoyi-vue_ruoyi-mysql:latest 192.168.100.10:5050/ruoyi-vue-ruoyi-mysql:latest
docker tag redis:6-alpine 192.168.100.10:5050/ruoyi-vue-ruoyi-redis:6-alpine
注意:docker-compose构建的镜像名称格式为"项目名_服务名"。
2. 推送镜像到私有仓库
# 登录私有仓库
docker login 192.168.100.10:5050 -u [用户名] -p [密码]# 推送镜像
docker push 192.168.100.10:5050/ruoyi-vue-ruoyi-backend:latest
docker push 192.168.100.10:5050/ruoyi-vue-ruoyi-frontend:latest
docker push 192.168.100.10:5050/ruoyi-vue-ruoyi-mysql:latest
docker push 192.168.100.10:5050/ruoyi-vue-ruoyi-redis:6-alpine
三、在目标环境拉取镜像并部署
1. 拉取镜像
# 拉取所有服务镜像
docker pull 192.168.100.10:5050/ruoyi-vue-ruoyi-backend:latest
docker pull 192.168.100.10:5050/ruoyi-vue-ruoyi-frontend:latest
docker pull 192.168.100.10:5050/ruoyi-vue-ruoyi-mysql:latest
docker pull 192.168.100.10:5050/ruoyi-vue-ruoyi-redis:6-alpine
2. 使用docker-compose-net.yml部署
在目标环境,使用docker-compose-net.yml文件启动服务:
docker-compose -f docker-compose-net.yml up -d
docker-compose-net.yml文件使用已推送到私有仓库的镜像,不再需要构建过程。
3. 检查服务状态
docker-compose -f docker-compose-net.yml ps
四、主要配置文件说明
1. docker-compose.yml
本地开发和构建环境使用的配置文件,定义了构建过程和服务配置。核心部分包括:
- 服务定义和构建配置
- 环境变量设置
- 端口映射
- 数据卷配置
- 服务依赖关系
- 网络设置
2. docker-compose-net.yml
生产环境部署使用的配置文件,直接使用已推送的镜像。与docker-compose.yml的主要区别是:
- 使用image字段指定镜像,而非build字段构建镜像
- 所有镜像名称指向私有仓库地址
3. Dockerfile-backend、Dockerfile-frontend、Dockerfile-mysql
各服务的镜像构建文件,定义了构建过程。
4. application-prod.yml
后端服务的生产环境配置文件,在容器中通过卷挂载方式提供。
5. nginx.conf
前端Nginx服务器的配置文件,主要功能包括:
- 静态文件服务:提供前端Vue应用的静态资源
- API代理:将不同路径的请求代理到后端服务
/prod-api/
:生产环境API路径,代理到后端服务/api
:通用API路径/dev-api
:开发环境API路径兼容/profile
:资源文件代理
- 错误页面配置:处理服务器错误
该配置确保前端应用能够正确访问后端API,并处理单页应用的路由刷新问题。
具体文件为vip免费下载