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

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免费下载

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

相关文章:

  • 云平台+MQTT+C#上位机+单片机通信
  • 在 UniApp 中实现 App 与 H5 页面的跳转及通信
  • lightrag : from lightrag.utils import EmbeddingFunc 报错
  • 04.通过OpenAPI-Swagger规范让Dify玩转Agent
  • 【Redis】set类型
  • JavaEE-多线程实战02
  • AI如何重塑CC防护行业?五大变革与实战策略解析
  • 【创新实训个人博客】multi-agent调研(2)
  • promis(resolve,reject)入门级别
  • 互联网大厂Java面试:从Spring Boot到微服务架构的实践与挑战
  • 智诚科技苏州SOLIDWORKS授权代理商的卓越之选
  • vite.config.ts 的详细配置项说明、完整代码示例及表格总结
  • 代码随想录算法训练营day12(二叉树)
  • javaScript--数据结构和算法
  • 轮转数组(中等)
  • 如何优雅地解决AI生成内容粘贴到Word排版混乱的问题?
  • 从“世界工厂”到“智造之都”:双运放如何改写东莞产业基因?
  • JavaScript 中 undefined 和 not defined 的区别
  • Dev控件RadioGroup 如何设置一排有N个显示或分为几行
  • 使用cesium设置第一视角
  • 第2讲、Tensor高级操作与自动求导详解
  • w~嵌入式C语言~合集6
  • 【计算机哲学故事1-2】输入输出(I/O):你吸收什么,便成为什么
  • APP、游戏、网站被黑客攻击了怎么解决?
  • MongoDB 操作全解析:从部署到安全控制的详细指南(含 emoji 趣味总结)
  • 京东商品详情数据爬取难度分析与解决方案
  • Spark-Streaming核心编程(3)
  • windows开启内测压缩(亲测可用)
  • uniapp-商城-40-shop 购物车 选好了 进行订单确认4 配送方式3 地址编辑
  • C++和Java该如何选择?