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

基于若依RuoYi-Vue3-FastAPI 的 Docker 部署记录

        最近在参与导师项目开发过程中,我选择基于若依 FastAPI + Vue3 模板作为系统框架,通过 Docker 实现前后端、数据库和缓存环境的容器化部署。
RuoYi-Vue3-FastAPI的github地址:https://github.com/insistence/RuoYi-Vue3-FastAPI

 

🛠 使用的技术栈

  • 🐍 FastAPI(基于若依后端模板)

  • 🖼 Vue3 + Vite

  • 🐘 PostgreSQL

  • 🧊 Redis

  • 🐳 Docker / Docker Compose

🧱 结构

docker-project/
├── docker-compose.yml
├── backend/
│   ├── Dockerfile
│   ├── .env.prod            # 后端环境变量配置
│   ├── requirements-pg.txt
│   └── app/                 # FastAPI 项目代码
│   └── sql/             # 初始化数据库 SQL 脚本
├── frontend/
│   ├── Dockerfile
│   ├── dist/                # 打包后前端文件
│   └── nginx.conf           # Nginx 配置

 下面是核心配置的内容:

⚙️ docker-compose.yml

version: "3.8"services:frontend:build:context: ./frontendports:- "8080:80"depends_on:- backendbackend:build:context: ./backendports:- "8001:9099"depends_on:db:condition: service_healthyredis:condition: service_starteddb:image: postgres:15restart: alwaysenvironment:POSTGRES_USER: postgrePOSTGRES_PASSWORD: (填你自己的密码)POSTGRES_DB: ruoyi-fastapivolumes:- pgdata:/var/lib/postgresql/data- ./backend/sql:/docker-entrypoint-initdb.dhealthcheck:test: ["CMD-SHELL", "pg_isready -U postgre"]interval: 5stimeout: 5sretries: 5redis:image: redis:7restart: alwaysports:- "6379:6379"volumes:pgdata:

🧩 后端 Dockerfile 

FROM python:3.10-slim

WORKDIR /app

COPY ./app /app
COPY ./requirements-pg.txt /app
COPY ./.env.prod /app/.env.prod

RUN pip install --no-cache-dir -r requirements-pg.txt

CMD ["python", "app.py", "--env=prod"]
 

 🧩 前端 Dockerfile 

 

FROM nginx:stable-alpine

RUN rm -rf /usr/share/nginx/html/*
COPY ./dist /usr/share/nginx/html
COPY ./nginx.conf /etc/nginx/conf.d/default.conf

EXPOSE 80
CMD ["nginx", "-g", "daemon off;"]
 

  🧩nginx.conf

 

server {
    listen 80;
    server_name localhost;

    location / {
        root   /usr/share/nginx/html;
        index  index.html;
        try_files $uri $uri/ /index.html;
    }

    # ✅ 代理 API 请求到 FastAPI 后端
location /prod-api/ {
    proxy_pass http://backend:9099/;
    rewrite ^/prod-api/?(.*)$ /$1 break;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
}

}
 

最后可以在根目录下新建一个start.bat 就可以双击启动了

start.bat内容如下: 

@echo off
chcp 65001 >nul

echo [1/3] 构建镜像中...
docker compose build

echo [2/3] 启动服务中...
docker compose up -d

echo [3/3] 成功!请访问:
echo  前端页面:http://localhost:8080
echo  后端接口:http://localhost:8001/docs


pause

 

 

 

 

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

相关文章:

  • 生物化学笔记:神经生物学概论06 听觉系统 结构与功能 声强范围的检测(外毛细胞动态调节)
  • 猜数字游戏:从数学原理到交互体验的完整设计指南
  • 边缘计算革命:大模型轻量化部署全栈实战指南
  • CANopen协议简单介绍和使用
  • 基于静态局部立方体贴图的高效软阴影
  • 先知AIGC超级工场,如何助力企业降本增效?
  • 上位机 日志根据类型显示成不同颜色
  • VS乱码问题
  • 2025年Jetpack Compose集成网络请求库的完整实施方案
  • Dify LLM节点的记忆功能深度探究
  • 滚珠丝杆怎么选型?
  • 《解锁LibTorch:开启C++深度学习新征程》
  • Windows 系统中安装 flash - attn
  • 智慧校园综合整体解决方案-8PPT(58页)
  • AI 知识库:企业知识管理的利器
  • 【C++】频繁进行动态内存分配和释放可能导致多方面的问题
  • 深入探讨互联网大厂Java核心技术与架构设计
  • windbg调试dump文件
  • 信号与系统-风中醉风
  • 2025 RSAC|自主式 GenAI 安全智能体(Agent)开启防御新纪元
  • Splunk 使用Role 实现数据隔离
  • firecrawl的docker安装和api调用
  • Linux安装MySQL详细教程
  • 视觉标记token:解锁AI视觉理解新维度的钥匙
  • 强化学习之基于无模型的算法之基于值函数的深度强化学习算法
  • DeepSeek-V3 解析第二篇:DeepSeekMoE
  • 数据库的死锁相关(一)
  • 动态规划 -- 子数组问题
  • nginx 配置要领
  • 客户服务升级:智能语音外呼系统在多领域的场景应用解析