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

基于若依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

 

 

 

 

相关文章:

  • 驱动开发系列55 - Linux Graphics QXL显卡驱动代码分析(二)显存管理
  • 《Android 应用开发基础教程》——第十章:使用 Gson 实现网络 JSON 数据解析与对象映射
  • RAGFlow报错:ESConnection.sql got exception
  • 纯html实现的json数据转csv文件
  • 题解:洛谷 CF2091E Interesting Ratio
  • 猫,为什么是猫?
  • Y1代码AC集
  • Python协程入门指北
  • 数据结构与算法学习笔记(Acwing提高课)----动态规划·背包模型(一)
  • 奥地利学派方法论的三个基础
  • Python TensorFlow库【深度学习框架】全面讲解与案例
  • 从MCP基础到FastMCP实战应用
  • 安全学习基础入门5集
  • 9. 深入Spring AI:刨析 ChatMemory
  • LeetCode 150题解 | 逆波兰表达式求值
  • WPF使用依赖注入框架AutoMapper
  • 第T10周:数据增强
  • 【MySQL】复合查询与内外连接
  • 日语学习-日语知识点小记-构建基础-JLPT-N4阶段(13): ておきます ています & てあります
  • OpenGL-ES 学习(15) ----纹理
  • 用小型核反应堆给数据中心供电,国内企业正在开展项目论证
  • 阿根廷发生5.8级地震
  • 对谈|《对工作说不》,究竟是要对什么说不?
  • 王毅谈金砖国家开展斡旋调解的经验和独特优势
  • “面具女孩”多次恐吓电梯内两幼童,当事女孩及家长道歉后获谅解
  • 《求是》杂志发表习近平总书记重要文章《激励新时代青年在中国式现代化建设中挺膺担当》