mirror of
https://github.com/fastapiadmin/FastapiAdmin.git
synced 2026-10-10 11:31:38 +00:00
refactor(docker): 合并Dockerfile并更新部署指南
- 删除旧的Dockerfile.frontend和Dockerfile.backend,合并为单一的Dockerfile - 更新docker-compose.yaml以使用新的Dockerfile - 移除部署指南中的本地部署部分,添加docker部署说明 - 更新前端.env.production中的API地址 - 优化nginx配置以解决页面刷新404问题
This commit is contained in:
@@ -214,24 +214,6 @@
|
||||
|
||||
|
||||
|
||||
<li class="md-tabs__item">
|
||||
<a href="/doc/build.html" class="md-tabs__link">
|
||||
|
||||
|
||||
部署指南
|
||||
|
||||
</a>
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<li class="md-tabs__item">
|
||||
<a href="/doc/mkdocs.html" class="md-tabs__link">
|
||||
|
||||
@@ -430,7 +412,7 @@
|
||||
|
||||
|
||||
<span class="md-ellipsis">
|
||||
部署指南
|
||||
文档指南
|
||||
|
||||
</span>
|
||||
|
||||
@@ -440,74 +422,6 @@
|
||||
|
||||
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_3_label" aria-expanded="false">
|
||||
<label class="md-nav__title" for="__nav_3">
|
||||
<span class="md-nav__icon md-icon"></span>
|
||||
部署指南
|
||||
</label>
|
||||
<ul class="md-nav__list" data-md-scrollfix>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="/doc/build.html" class="md-nav__link">
|
||||
|
||||
|
||||
<span class="md-ellipsis">
|
||||
本地部署
|
||||
|
||||
</span>
|
||||
|
||||
|
||||
</a>
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
|
||||
</ul>
|
||||
</nav>
|
||||
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<li class="md-nav__item md-nav__item--nested">
|
||||
|
||||
|
||||
|
||||
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_4" >
|
||||
|
||||
|
||||
<label class="md-nav__link" for="__nav_4" id="__nav_4_label" tabindex="0">
|
||||
|
||||
|
||||
<span class="md-ellipsis">
|
||||
文档指南
|
||||
|
||||
</span>
|
||||
|
||||
|
||||
<span class="md-nav__icon md-icon"></span>
|
||||
</label>
|
||||
|
||||
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_4_label" aria-expanded="false">
|
||||
<label class="md-nav__title" for="__nav_4">
|
||||
<span class="md-nav__icon md-icon"></span>
|
||||
文档指南
|
||||
</label>
|
||||
|
||||
@@ -227,24 +227,6 @@
|
||||
|
||||
|
||||
|
||||
<li class="md-tabs__item">
|
||||
<a href="build.html" class="md-tabs__link">
|
||||
|
||||
|
||||
部署指南
|
||||
|
||||
</a>
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<li class="md-tabs__item">
|
||||
<a href="mkdocs.html" class="md-tabs__link">
|
||||
|
||||
@@ -498,7 +480,7 @@
|
||||
|
||||
|
||||
<span class="md-ellipsis">
|
||||
部署指南
|
||||
文档指南
|
||||
|
||||
</span>
|
||||
|
||||
@@ -508,74 +490,6 @@
|
||||
|
||||
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_3_label" aria-expanded="false">
|
||||
<label class="md-nav__title" for="__nav_3">
|
||||
<span class="md-nav__icon md-icon"></span>
|
||||
部署指南
|
||||
</label>
|
||||
<ul class="md-nav__list" data-md-scrollfix>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="build.html" class="md-nav__link">
|
||||
|
||||
|
||||
<span class="md-ellipsis">
|
||||
本地部署
|
||||
|
||||
</span>
|
||||
|
||||
|
||||
</a>
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
|
||||
</ul>
|
||||
</nav>
|
||||
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<li class="md-nav__item md-nav__item--nested">
|
||||
|
||||
|
||||
|
||||
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_4" >
|
||||
|
||||
|
||||
<label class="md-nav__link" for="__nav_4" id="__nav_4_label" tabindex="0">
|
||||
|
||||
|
||||
<span class="md-ellipsis">
|
||||
文档指南
|
||||
|
||||
</span>
|
||||
|
||||
|
||||
<span class="md-nav__icon md-icon"></span>
|
||||
</label>
|
||||
|
||||
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_4_label" aria-expanded="false">
|
||||
<label class="md-nav__title" for="__nav_4">
|
||||
<span class="md-nav__icon md-icon"></span>
|
||||
文档指南
|
||||
</label>
|
||||
|
||||
@@ -1,998 +0,0 @@
|
||||
|
||||
<!doctype html>
|
||||
<html lang="zh" class="no-js">
|
||||
<head>
|
||||
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width,initial-scale=1">
|
||||
|
||||
<meta name="description" content="这里是网站描述">
|
||||
|
||||
|
||||
<meta name="author" content="948080782x@qq.com">
|
||||
|
||||
|
||||
<link rel="canonical" href="http://127.0.0.1:8888/doc/build.html">
|
||||
|
||||
|
||||
<link rel="prev" href="frontend.html">
|
||||
|
||||
|
||||
<link rel="next" href="mkdocs.html">
|
||||
|
||||
|
||||
<link rel="icon" href="../assets/images/favicon.png">
|
||||
<meta name="generator" content="mkdocs-1.6.1, mkdocs-material-9.6.7">
|
||||
|
||||
|
||||
|
||||
<title>本地部署 - Fastapi_Vue_Admin在线文档</title>
|
||||
|
||||
|
||||
|
||||
<link rel="stylesheet" href="../assets/stylesheets/main.8608ea7d.min.css">
|
||||
|
||||
|
||||
<link rel="stylesheet" href="../assets/stylesheets/palette.06af60db.min.css">
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
|
||||
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto:300,300i,400,400i,700,700i%7CRoboto+Mono:400,400i,700,700i&display=fallback">
|
||||
<style>:root{--md-text-font:"Roboto";--md-code-font:"Roboto Mono"}</style>
|
||||
|
||||
|
||||
|
||||
<script>__md_scope=new URL("..",location),__md_hash=e=>[...e].reduce(((e,_)=>(e<<5)-e+_.charCodeAt(0)),0),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</head>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<body dir="ltr" data-md-color-scheme="default" data-md-color-primary="indigo" data-md-color-accent="indigo">
|
||||
|
||||
|
||||
<input class="md-toggle" data-md-toggle="drawer" type="checkbox" id="__drawer" autocomplete="off">
|
||||
<input class="md-toggle" data-md-toggle="search" type="checkbox" id="__search" autocomplete="off">
|
||||
<label class="md-overlay" for="__drawer"></label>
|
||||
<div data-md-component="skip">
|
||||
|
||||
|
||||
<a href="#_1" class="md-skip">
|
||||
跳转至
|
||||
</a>
|
||||
|
||||
</div>
|
||||
<div data-md-component="announce">
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<header class="md-header md-header--shadow md-header--lifted" data-md-component="header">
|
||||
<nav class="md-header__inner md-grid" aria-label="页眉">
|
||||
<a href="../index.html" title="Fastapi_Vue_Admin在线文档" class="md-header__button md-logo" aria-label="Fastapi_Vue_Admin在线文档" data-md-component="logo">
|
||||
|
||||
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54"/></svg>
|
||||
|
||||
</a>
|
||||
<label class="md-header__button md-icon" for="__drawer">
|
||||
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M3 6h18v2H3zm0 5h18v2H3zm0 5h18v2H3z"/></svg>
|
||||
</label>
|
||||
<div class="md-header__title" data-md-component="header-title">
|
||||
<div class="md-header__ellipsis">
|
||||
<div class="md-header__topic">
|
||||
<span class="md-ellipsis">
|
||||
Fastapi_Vue_Admin在线文档
|
||||
</span>
|
||||
</div>
|
||||
<div class="md-header__topic" data-md-component="header-topic">
|
||||
<span class="md-ellipsis">
|
||||
|
||||
本地部署
|
||||
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<label class="md-header__button md-icon" for="__search">
|
||||
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.52 6.52 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5"/></svg>
|
||||
</label>
|
||||
<div class="md-search" data-md-component="search" role="dialog">
|
||||
<label class="md-search__overlay" for="__search"></label>
|
||||
<div class="md-search__inner" role="search">
|
||||
<form class="md-search__form" name="search">
|
||||
<input type="text" class="md-search__input" name="query" aria-label="搜索" placeholder="搜索" autocapitalize="off" autocorrect="off" autocomplete="off" spellcheck="false" data-md-component="search-query" required>
|
||||
<label class="md-search__icon md-icon" for="__search">
|
||||
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.52 6.52 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5"/></svg>
|
||||
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11z"/></svg>
|
||||
</label>
|
||||
<nav class="md-search__options" aria-label="查找">
|
||||
|
||||
<button type="reset" class="md-search__icon md-icon" title="清空当前内容" aria-label="清空当前内容" tabindex="-1">
|
||||
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"/></svg>
|
||||
</button>
|
||||
</nav>
|
||||
|
||||
<div class="md-search__suggest" data-md-component="search-suggest"></div>
|
||||
|
||||
</form>
|
||||
<div class="md-search__output">
|
||||
<div class="md-search__scrollwrap" tabindex="0" data-md-scrollfix>
|
||||
<div class="md-search-result" data-md-component="search-result">
|
||||
<div class="md-search-result__meta">
|
||||
正在初始化搜索引擎
|
||||
</div>
|
||||
<ol class="md-search-result__list" role="presentation"></ol>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="md-header__source">
|
||||
<a href="https://gitee.com/tao__tao/fastapi_vue3_admin.git" title="前往仓库" class="md-source" data-md-component="source">
|
||||
<div class="md-source__icon md-icon">
|
||||
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc.--><path d="M439.55 236.05 244 40.45a28.87 28.87 0 0 0-40.81 0l-40.66 40.63 51.52 51.52c27.06-9.14 52.68 16.77 43.39 43.68l49.66 49.66c34.23-11.8 61.18 31 35.47 56.69-26.49 26.49-70.21-2.87-56-37.34L240.22 199v121.85c25.3 12.54 22.26 41.85 9.08 55a34.34 34.34 0 0 1-48.55 0c-17.57-17.6-11.07-46.91 11.25-56v-123c-20.8-8.51-24.6-30.74-18.64-45L142.57 101 8.45 235.14a28.86 28.86 0 0 0 0 40.81l195.61 195.6a28.86 28.86 0 0 0 40.8 0l194.69-194.69a28.86 28.86 0 0 0 0-40.81"/></svg>
|
||||
</div>
|
||||
<div class="md-source__repository">
|
||||
fastapi_vue_admin
|
||||
</div>
|
||||
</a>
|
||||
</div>
|
||||
|
||||
</nav>
|
||||
|
||||
|
||||
|
||||
<nav class="md-tabs" aria-label="标签" data-md-component="tabs">
|
||||
<div class="md-grid">
|
||||
<ul class="md-tabs__list">
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<li class="md-tabs__item">
|
||||
<a href="../index.html" class="md-tabs__link">
|
||||
|
||||
|
||||
|
||||
|
||||
项目概述
|
||||
|
||||
</a>
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<li class="md-tabs__item">
|
||||
<a href="backend.html" class="md-tabs__link">
|
||||
|
||||
|
||||
开发指南
|
||||
|
||||
</a>
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<li class="md-tabs__item md-tabs__item--active">
|
||||
<a href="build.html" class="md-tabs__link">
|
||||
|
||||
|
||||
部署指南
|
||||
|
||||
</a>
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<li class="md-tabs__item">
|
||||
<a href="mkdocs.html" class="md-tabs__link">
|
||||
|
||||
|
||||
文档指南
|
||||
|
||||
</a>
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
|
||||
</ul>
|
||||
</div>
|
||||
</nav>
|
||||
|
||||
|
||||
</header>
|
||||
|
||||
<div class="md-container" data-md-component="container">
|
||||
|
||||
|
||||
|
||||
|
||||
<main class="md-main" data-md-component="main">
|
||||
<div class="md-main__inner md-grid">
|
||||
|
||||
|
||||
|
||||
<div class="md-sidebar md-sidebar--primary" data-md-component="sidebar" data-md-type="navigation" >
|
||||
<div class="md-sidebar__scrollwrap">
|
||||
<div class="md-sidebar__inner">
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<nav class="md-nav md-nav--primary md-nav--lifted" aria-label="导航栏" data-md-level="0">
|
||||
<label class="md-nav__title" for="__drawer">
|
||||
<a href="../index.html" title="Fastapi_Vue_Admin在线文档" class="md-nav__button md-logo" aria-label="Fastapi_Vue_Admin在线文档" data-md-component="logo">
|
||||
|
||||
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54"/></svg>
|
||||
|
||||
</a>
|
||||
Fastapi_Vue_Admin在线文档
|
||||
</label>
|
||||
|
||||
<div class="md-nav__source">
|
||||
<a href="https://gitee.com/tao__tao/fastapi_vue3_admin.git" title="前往仓库" class="md-source" data-md-component="source">
|
||||
<div class="md-source__icon md-icon">
|
||||
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc.--><path d="M439.55 236.05 244 40.45a28.87 28.87 0 0 0-40.81 0l-40.66 40.63 51.52 51.52c27.06-9.14 52.68 16.77 43.39 43.68l49.66 49.66c34.23-11.8 61.18 31 35.47 56.69-26.49 26.49-70.21-2.87-56-37.34L240.22 199v121.85c25.3 12.54 22.26 41.85 9.08 55a34.34 34.34 0 0 1-48.55 0c-17.57-17.6-11.07-46.91 11.25-56v-123c-20.8-8.51-24.6-30.74-18.64-45L142.57 101 8.45 235.14a28.86 28.86 0 0 0 0 40.81l195.61 195.6a28.86 28.86 0 0 0 40.8 0l194.69-194.69a28.86 28.86 0 0 0 0-40.81"/></svg>
|
||||
</div>
|
||||
<div class="md-source__repository">
|
||||
fastapi_vue_admin
|
||||
</div>
|
||||
</a>
|
||||
</div>
|
||||
|
||||
<ul class="md-nav__list" data-md-scrollfix>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="../index.html" class="md-nav__link">
|
||||
|
||||
|
||||
<span class="md-ellipsis">
|
||||
项目概述
|
||||
|
||||
</span>
|
||||
|
||||
|
||||
</a>
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<li class="md-nav__item md-nav__item--nested">
|
||||
|
||||
|
||||
|
||||
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2" >
|
||||
|
||||
|
||||
<label class="md-nav__link" for="__nav_2" id="__nav_2_label" tabindex="0">
|
||||
|
||||
|
||||
<span class="md-ellipsis">
|
||||
开发指南
|
||||
|
||||
</span>
|
||||
|
||||
|
||||
<span class="md-nav__icon md-icon"></span>
|
||||
</label>
|
||||
|
||||
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_2_label" aria-expanded="false">
|
||||
<label class="md-nav__title" for="__nav_2">
|
||||
<span class="md-nav__icon md-icon"></span>
|
||||
开发指南
|
||||
</label>
|
||||
<ul class="md-nav__list" data-md-scrollfix>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="backend.html" class="md-nav__link">
|
||||
|
||||
|
||||
<span class="md-ellipsis">
|
||||
后端开发
|
||||
|
||||
</span>
|
||||
|
||||
|
||||
</a>
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="frontend.html" class="md-nav__link">
|
||||
|
||||
|
||||
<span class="md-ellipsis">
|
||||
前端开发
|
||||
|
||||
</span>
|
||||
|
||||
|
||||
</a>
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
|
||||
</ul>
|
||||
</nav>
|
||||
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<li class="md-nav__item md-nav__item--active md-nav__item--section md-nav__item--nested">
|
||||
|
||||
|
||||
|
||||
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3" checked>
|
||||
|
||||
|
||||
<label class="md-nav__link" for="__nav_3" id="__nav_3_label" tabindex="">
|
||||
|
||||
|
||||
<span class="md-ellipsis">
|
||||
部署指南
|
||||
|
||||
</span>
|
||||
|
||||
|
||||
<span class="md-nav__icon md-icon"></span>
|
||||
</label>
|
||||
|
||||
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_3_label" aria-expanded="true">
|
||||
<label class="md-nav__title" for="__nav_3">
|
||||
<span class="md-nav__icon md-icon"></span>
|
||||
部署指南
|
||||
</label>
|
||||
<ul class="md-nav__list" data-md-scrollfix>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<li class="md-nav__item md-nav__item--active">
|
||||
|
||||
<input class="md-nav__toggle md-toggle" type="checkbox" id="__toc">
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<label class="md-nav__link md-nav__link--active" for="__toc">
|
||||
|
||||
|
||||
<span class="md-ellipsis">
|
||||
本地部署
|
||||
|
||||
</span>
|
||||
|
||||
|
||||
<span class="md-nav__icon md-icon"></span>
|
||||
</label>
|
||||
|
||||
<a href="build.html" class="md-nav__link md-nav__link--active">
|
||||
|
||||
|
||||
<span class="md-ellipsis">
|
||||
本地部署
|
||||
|
||||
</span>
|
||||
|
||||
|
||||
</a>
|
||||
|
||||
|
||||
|
||||
<nav class="md-nav md-nav--secondary" aria-label="目录">
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<label class="md-nav__title" for="__toc">
|
||||
<span class="md-nav__icon md-icon"></span>
|
||||
目录
|
||||
</label>
|
||||
<ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="#docker" class="md-nav__link">
|
||||
<span class="md-ellipsis">
|
||||
docker
|
||||
</span>
|
||||
</a>
|
||||
|
||||
</li>
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="#docker-componse" class="md-nav__link">
|
||||
<span class="md-ellipsis">
|
||||
docker-componse
|
||||
</span>
|
||||
</a>
|
||||
|
||||
</li>
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="#nginx" class="md-nav__link">
|
||||
<span class="md-ellipsis">
|
||||
nginx
|
||||
</span>
|
||||
</a>
|
||||
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
|
||||
</nav>
|
||||
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
|
||||
</ul>
|
||||
</nav>
|
||||
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<li class="md-nav__item md-nav__item--nested">
|
||||
|
||||
|
||||
|
||||
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_4" >
|
||||
|
||||
|
||||
<label class="md-nav__link" for="__nav_4" id="__nav_4_label" tabindex="0">
|
||||
|
||||
|
||||
<span class="md-ellipsis">
|
||||
文档指南
|
||||
|
||||
</span>
|
||||
|
||||
|
||||
<span class="md-nav__icon md-icon"></span>
|
||||
</label>
|
||||
|
||||
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_4_label" aria-expanded="false">
|
||||
<label class="md-nav__title" for="__nav_4">
|
||||
<span class="md-nav__icon md-icon"></span>
|
||||
文档指南
|
||||
</label>
|
||||
<ul class="md-nav__list" data-md-scrollfix>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="mkdocs.html" class="md-nav__link">
|
||||
|
||||
|
||||
<span class="md-ellipsis">
|
||||
文档开发
|
||||
|
||||
</span>
|
||||
|
||||
|
||||
</a>
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
|
||||
</ul>
|
||||
</nav>
|
||||
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
</ul>
|
||||
</nav>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div class="md-sidebar md-sidebar--secondary" data-md-component="sidebar" data-md-type="toc" >
|
||||
<div class="md-sidebar__scrollwrap">
|
||||
<div class="md-sidebar__inner">
|
||||
|
||||
|
||||
<nav class="md-nav md-nav--secondary" aria-label="目录">
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<label class="md-nav__title" for="__toc">
|
||||
<span class="md-nav__icon md-icon"></span>
|
||||
目录
|
||||
</label>
|
||||
<ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="#docker" class="md-nav__link">
|
||||
<span class="md-ellipsis">
|
||||
docker
|
||||
</span>
|
||||
</a>
|
||||
|
||||
</li>
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="#docker-componse" class="md-nav__link">
|
||||
<span class="md-ellipsis">
|
||||
docker-componse
|
||||
</span>
|
||||
</a>
|
||||
|
||||
</li>
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="#nginx" class="md-nav__link">
|
||||
<span class="md-ellipsis">
|
||||
nginx
|
||||
</span>
|
||||
</a>
|
||||
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
|
||||
</nav>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div class="md-content" data-md-component="content">
|
||||
<article class="md-content__inner md-typeset">
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<h1 id="_1">部署介绍</h1>
|
||||
<h2 id="docker">docker</h2>
|
||||
<pre><code class="language-dockerfile"># 使用官方的 Python 3.10 镜像作为基础镜像
|
||||
FROM python:3.10
|
||||
# 使用 LABEL 替代 MAINTAINER
|
||||
LABEL maintainer="管理员"
|
||||
# 设置 python 环境变量
|
||||
ENV PYTHONUNBUFFERED 1
|
||||
ENV PYTHONDONTWRITEBYTECODE 1
|
||||
# 设置时区
|
||||
ENV TZ Asia/Shanghai
|
||||
|
||||
# 升级pip版本
|
||||
# RUN python -m pip install --upgrade pip
|
||||
|
||||
# 创建容器工作目录
|
||||
RUN mkdir -p /opt/fastapi_project
|
||||
# 设置容器内工作目录
|
||||
WORKDIR /opt/fastapi_project
|
||||
# 将当前主机目录全部文件复制至容器工作目录
|
||||
COPY ./requirements.txt /code/requirements.txt
|
||||
# 安装依赖
|
||||
RUN pip install --no-cache-dir --upgrade -r /opt/fastapiproject/backend/requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
|
||||
|
||||
# 部署 nginx
|
||||
RUN apt-get update && apt-get install -y nginx
|
||||
RUN rm /etc/nginx/sites-enabled/default
|
||||
COPY nginx.conf /etc/nginx/sites-available/
|
||||
RUN ln -s /etc/nginx/sites-available/nginx.conf /etc/nginx/sites-enabled/
|
||||
RUN echo "daemon off;" >> /etc/nginx/nginx.conf
|
||||
|
||||
# # 部署mysql
|
||||
# RUN apt-get install -y mysql-server
|
||||
|
||||
# # 部署redis
|
||||
# RUN apt-get install -y redis-server
|
||||
|
||||
# # 部署mongo
|
||||
# RUN apt-get install -y mongodb
|
||||
|
||||
|
||||
#CMD 运行以下命令,daemon off后台运行,否则启动完就自动关闭
|
||||
CMD ["nginx", "-g", "daemon off;"]
|
||||
|
||||
CMD ["uvicorn", "app.main:app", "--host", "0.0.0.0", "--port", "80"]
|
||||
# 暴露端口
|
||||
EXPOSE 8000
|
||||
# python main.py run 或者 uvicorn main:create_app --host 0.0.0.0 --port 8000 --workers 4
|
||||
ENTRYPOINT ["uvicorn", "backend.main:create_app", "--host", "0.0.0.0", "--port", "8000", "--workers", 4]
|
||||
# ENTRYPOINT ["gunicorn", "-c", "gunicorn.py", "main:create_app"]
|
||||
|
||||
</code></pre>
|
||||
<h2 id="docker-componse">docker-componse</h2>
|
||||
<pre><code class="language-yaml">version: "3.10.11"
|
||||
|
||||
# 应用服务
|
||||
services:
|
||||
# 应用服务
|
||||
fastapi_getway:
|
||||
# 容器名称
|
||||
container_name: fastapi
|
||||
# 镜像名称
|
||||
image: fastapi
|
||||
env_file: .env
|
||||
networks:
|
||||
- db_network
|
||||
- web_network
|
||||
# 构建镜像
|
||||
build:
|
||||
context: ./
|
||||
dockerfile: Dockerfile
|
||||
#build: .
|
||||
# 将容器运行在特权模式下,意味着容器内的进程将具
|
||||
# 有访问宿主机的权限,包括文件系统、设备和系统功能等
|
||||
privileged: true
|
||||
# 指定容器中运行的用户
|
||||
user: root
|
||||
# 启动策略为始终重启
|
||||
restart: always
|
||||
# 设置网络模式为host模式
|
||||
network_mode: host
|
||||
# 端口映射
|
||||
ports:
|
||||
- 8020:8020
|
||||
# 文件挂载
|
||||
volumes:
|
||||
- ./:/data/apps
|
||||
- ./uploads:/data/apps/uploads
|
||||
# 执行命令
|
||||
command: python app.py runserver 0.0.0.0:8020 --noreload
|
||||
# 日志配置
|
||||
logging:
|
||||
driver: "json-file"
|
||||
options:
|
||||
max-size: "500m"
|
||||
max-file: "10"
|
||||
# nginx服务
|
||||
nginx:
|
||||
container_name: nginx
|
||||
restart: always
|
||||
image: "nginx:latest"
|
||||
ports:
|
||||
- "5000:5000"
|
||||
volumes:
|
||||
- ./nginx:/etc/nginx/conf.d
|
||||
networks:
|
||||
- web_network
|
||||
depends_on:
|
||||
- flask_api
|
||||
|
||||
# 中间件服务
|
||||
mysql:
|
||||
container_name: mysql
|
||||
image: mysql:latest
|
||||
restart: always
|
||||
ports:
|
||||
- "3306:3306"
|
||||
# 数据卷挂载
|
||||
|
||||
networks:
|
||||
db_network:
|
||||
driver: bridge
|
||||
web_network:
|
||||
driver: bridge
|
||||
|
||||
</code></pre>
|
||||
<h2 id="nginx">nginx</h2>
|
||||
<pre><code class="language-nginx">########### 每个指令必须有分号结束。#################
|
||||
user administrator administrators; # 配置用户或组,默认为nobody nobody
|
||||
worker_processes 2; # 允许生成的进程数,默认为1
|
||||
pid /nginx/pid/nginx.pid; # 指定 Nginx 进程运行文件存放地址
|
||||
error_log log/error.log debug; # 制定日志路径,级别。这个设置可以放入全局块、http块、server块,级别依次为:debug|info|notice|warn|error|crit|alert|emerg
|
||||
|
||||
events {
|
||||
accept_mutex on; # 设置网络连接序列化,防止惊群现象发生,默认为on
|
||||
multi_accept on; # 设置一个进程是否同时接受多个网络连接,默认为off
|
||||
use epoll; # 事件驱动模型,select|poll|kqueue|epoll|resig|/dev/poll|eventport
|
||||
worker_connections 1024; # 最大连接数,默认为512
|
||||
}
|
||||
|
||||
http {
|
||||
include mime.types; # 文件扩展名与文件类型映射表
|
||||
default_type application/octet-stream; # 默认文件类型,默认为text/plain
|
||||
|
||||
# 取消服务日志
|
||||
access_log off;
|
||||
|
||||
# 自定义日志格式
|
||||
log_format access '$remote_addr–$remote_user [$time_local] $request $status $body_bytes_sent $http_referer $http_user_agent $http_x_forwarded_for';
|
||||
|
||||
# 启用访问日志
|
||||
access_log log/access.log access; # combined为日志格式的默认值
|
||||
|
||||
sendfile on; # 允许sendfile方式传输文件,默认为off,可以在http块、server块、location块
|
||||
sendfile_max_chunk 100k; # 每个进程每次调用传输数量不能大于设定的值,默认为0,即不设上限
|
||||
keepalive_timeout 65; # 连接超时时间,默认为75秒,可以在http、server、location块
|
||||
|
||||
# 定义上游服务器
|
||||
upstream mysvr {
|
||||
server 127.0.0.1:7878;
|
||||
server 192.168.10.121:3333 backup; # 热备
|
||||
}
|
||||
|
||||
# 错误页
|
||||
error_page 404 https://www.baidu.com;
|
||||
|
||||
# 定义一个 server 块
|
||||
server {
|
||||
# 单连接请求上限次数
|
||||
keepalive_requests 120;
|
||||
|
||||
# 监听端口
|
||||
listen 4545;
|
||||
|
||||
# 监听地址
|
||||
server_name 127.0.0.1;
|
||||
|
||||
# 前端代理
|
||||
location / {
|
||||
proxy_set_header Host $host;
|
||||
root /web/front/;
|
||||
proxy_set_header X-Real-IP $remote_addr;
|
||||
proxy_set_header REMOTE-HOST $remote_addr;
|
||||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||
try_files $uri $uri/ /index.html;
|
||||
index /index.html;
|
||||
}
|
||||
|
||||
# 后端代理
|
||||
location /api/ {
|
||||
proxy_set_header Host $host;
|
||||
proxy_set_header X-Real-IP $remote_addr;
|
||||
proxy_set_header REMOTE-HOST $remote_addr;
|
||||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||
add_header Access-Control-Allow-Methods *;
|
||||
add_header Access-Control-Allow-Origin $http_origin;
|
||||
proxy_pass http://127.0.0.1:8010/;
|
||||
}
|
||||
}
|
||||
}
|
||||
</code></pre>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</article>
|
||||
</div>
|
||||
|
||||
|
||||
<script>var target=document.getElementById(location.hash.slice(1));target&&target.name&&(target.checked=target.name.startsWith("__tabbed_"))</script>
|
||||
</div>
|
||||
|
||||
</main>
|
||||
|
||||
<footer class="md-footer">
|
||||
|
||||
|
||||
|
||||
<nav class="md-footer__inner md-grid" aria-label="页脚" >
|
||||
|
||||
|
||||
<a href="frontend.html" class="md-footer__link md-footer__link--prev" aria-label="上一页: 前端开发">
|
||||
<div class="md-footer__button md-icon">
|
||||
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11z"/></svg>
|
||||
</div>
|
||||
<div class="md-footer__title">
|
||||
<span class="md-footer__direction">
|
||||
上一页
|
||||
</span>
|
||||
<div class="md-ellipsis">
|
||||
前端开发
|
||||
</div>
|
||||
</div>
|
||||
</a>
|
||||
|
||||
|
||||
|
||||
<a href="mkdocs.html" class="md-footer__link md-footer__link--next" aria-label="下一页: 文档开发">
|
||||
<div class="md-footer__title">
|
||||
<span class="md-footer__direction">
|
||||
下一页
|
||||
</span>
|
||||
<div class="md-ellipsis">
|
||||
文档开发
|
||||
</div>
|
||||
</div>
|
||||
<div class="md-footer__button md-icon">
|
||||
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M4 11v2h12l-5.5 5.5 1.42 1.42L19.84 12l-7.92-7.92L10.5 5.5 16 11z"/></svg>
|
||||
</div>
|
||||
</a>
|
||||
|
||||
</nav>
|
||||
|
||||
|
||||
<div class="md-footer-meta md-typeset">
|
||||
<div class="md-footer-meta__inner md-grid">
|
||||
<div class="md-copyright">
|
||||
|
||||
<div class="md-copyright__highlight">
|
||||
Copyright © 2022 <a href="http://127.0.0.1:8888">Powered by xxxxx@qq.com 版权所有</a>
|
||||
</div>
|
||||
|
||||
|
||||
Made with
|
||||
<a href="https://squidfunk.github.io/mkdocs-material/" target="_blank" rel="noopener">
|
||||
Material for MkDocs
|
||||
</a>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</footer>
|
||||
|
||||
</div>
|
||||
<div class="md-dialog" data-md-component="dialog">
|
||||
<div class="md-dialog__inner md-typeset"></div>
|
||||
</div>
|
||||
|
||||
|
||||
<script id="__config" type="application/json">{"base": "..", "features": ["navigation.tabs", "navigation.tabs.sticky", "navigation.instant", "search.highlight", "search.suggest", "navigation.footer"], "search": "../assets/javascripts/workers/search.f8cc74c7.min.js", "translations": {"clipboard.copied": "\u5df2\u590d\u5236", "clipboard.copy": "\u590d\u5236", "search.result.more.one": "\u5728\u8be5\u9875\u4e0a\u8fd8\u6709 1 \u4e2a\u7b26\u5408\u6761\u4ef6\u7684\u7ed3\u679c", "search.result.more.other": "\u5728\u8be5\u9875\u4e0a\u8fd8\u6709 # \u4e2a\u7b26\u5408\u6761\u4ef6\u7684\u7ed3\u679c", "search.result.none": "\u6ca1\u6709\u627e\u5230\u7b26\u5408\u6761\u4ef6\u7684\u7ed3\u679c", "search.result.one": "\u627e\u5230 1 \u4e2a\u7b26\u5408\u6761\u4ef6\u7684\u7ed3\u679c", "search.result.other": "# \u4e2a\u7b26\u5408\u6761\u4ef6\u7684\u7ed3\u679c", "search.result.placeholder": "\u952e\u5165\u4ee5\u5f00\u59cb\u641c\u7d22", "search.result.term.missing": "\u7f3a\u5c11", "select.version": "\u9009\u62e9\u5f53\u524d\u7248\u672c"}}</script>
|
||||
|
||||
|
||||
<script src="../assets/javascripts/bundle.c8b220af.min.js"></script>
|
||||
|
||||
|
||||
</body>
|
||||
</html>
|
||||
@@ -18,7 +18,7 @@
|
||||
<link rel="prev" href="backend.html">
|
||||
|
||||
|
||||
<link rel="next" href="build.html">
|
||||
<link rel="next" href="mkdocs.html">
|
||||
|
||||
|
||||
<link rel="icon" href="../assets/images/favicon.png">
|
||||
@@ -227,24 +227,6 @@
|
||||
|
||||
|
||||
|
||||
<li class="md-tabs__item">
|
||||
<a href="build.html" class="md-tabs__link">
|
||||
|
||||
|
||||
部署指南
|
||||
|
||||
</a>
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<li class="md-tabs__item">
|
||||
<a href="mkdocs.html" class="md-tabs__link">
|
||||
|
||||
@@ -558,7 +540,7 @@
|
||||
|
||||
|
||||
<span class="md-ellipsis">
|
||||
部署指南
|
||||
文档指南
|
||||
|
||||
</span>
|
||||
|
||||
@@ -568,74 +550,6 @@
|
||||
|
||||
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_3_label" aria-expanded="false">
|
||||
<label class="md-nav__title" for="__nav_3">
|
||||
<span class="md-nav__icon md-icon"></span>
|
||||
部署指南
|
||||
</label>
|
||||
<ul class="md-nav__list" data-md-scrollfix>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="build.html" class="md-nav__link">
|
||||
|
||||
|
||||
<span class="md-ellipsis">
|
||||
本地部署
|
||||
|
||||
</span>
|
||||
|
||||
|
||||
</a>
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
|
||||
</ul>
|
||||
</nav>
|
||||
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<li class="md-nav__item md-nav__item--nested">
|
||||
|
||||
|
||||
|
||||
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_4" >
|
||||
|
||||
|
||||
<label class="md-nav__link" for="__nav_4" id="__nav_4_label" tabindex="0">
|
||||
|
||||
|
||||
<span class="md-ellipsis">
|
||||
文档指南
|
||||
|
||||
</span>
|
||||
|
||||
|
||||
<span class="md-nav__icon md-icon"></span>
|
||||
</label>
|
||||
|
||||
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_4_label" aria-expanded="false">
|
||||
<label class="md-nav__title" for="__nav_4">
|
||||
<span class="md-nav__icon md-icon"></span>
|
||||
文档指南
|
||||
</label>
|
||||
@@ -852,13 +766,13 @@ npm run lint
|
||||
|
||||
|
||||
|
||||
<a href="build.html" class="md-footer__link md-footer__link--next" aria-label="下一页: 本地部署">
|
||||
<a href="mkdocs.html" class="md-footer__link md-footer__link--next" aria-label="下一页: 文档开发">
|
||||
<div class="md-footer__title">
|
||||
<span class="md-footer__direction">
|
||||
下一页
|
||||
</span>
|
||||
<div class="md-ellipsis">
|
||||
本地部署
|
||||
文档开发
|
||||
</div>
|
||||
</div>
|
||||
<div class="md-footer__button md-icon">
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
<link rel="canonical" href="http://127.0.0.1:8888/doc/mkdocs.html">
|
||||
|
||||
|
||||
<link rel="prev" href="build.html">
|
||||
<link rel="prev" href="frontend.html">
|
||||
|
||||
|
||||
|
||||
@@ -220,24 +220,6 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<li class="md-tabs__item">
|
||||
<a href="build.html" class="md-tabs__link">
|
||||
|
||||
|
||||
部署指南
|
||||
|
||||
</a>
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -421,74 +403,6 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<li class="md-nav__item md-nav__item--nested">
|
||||
|
||||
|
||||
|
||||
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3" >
|
||||
|
||||
|
||||
<label class="md-nav__link" for="__nav_3" id="__nav_3_label" tabindex="0">
|
||||
|
||||
|
||||
<span class="md-ellipsis">
|
||||
部署指南
|
||||
|
||||
</span>
|
||||
|
||||
|
||||
<span class="md-nav__icon md-icon"></span>
|
||||
</label>
|
||||
|
||||
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_3_label" aria-expanded="false">
|
||||
<label class="md-nav__title" for="__nav_3">
|
||||
<span class="md-nav__icon md-icon"></span>
|
||||
部署指南
|
||||
</label>
|
||||
<ul class="md-nav__list" data-md-scrollfix>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="build.html" class="md-nav__link">
|
||||
|
||||
|
||||
<span class="md-ellipsis">
|
||||
本地部署
|
||||
|
||||
</span>
|
||||
|
||||
|
||||
</a>
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
|
||||
</ul>
|
||||
</nav>
|
||||
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -507,10 +421,10 @@
|
||||
|
||||
|
||||
|
||||
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_4" checked>
|
||||
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3" checked>
|
||||
|
||||
|
||||
<label class="md-nav__link" for="__nav_4" id="__nav_4_label" tabindex="">
|
||||
<label class="md-nav__link" for="__nav_3" id="__nav_3_label" tabindex="">
|
||||
|
||||
|
||||
<span class="md-ellipsis">
|
||||
@@ -522,8 +436,8 @@
|
||||
<span class="md-nav__icon md-icon"></span>
|
||||
</label>
|
||||
|
||||
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_4_label" aria-expanded="true">
|
||||
<label class="md-nav__title" for="__nav_4">
|
||||
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_3_label" aria-expanded="true">
|
||||
<label class="md-nav__title" for="__nav_3">
|
||||
<span class="md-nav__icon md-icon"></span>
|
||||
文档指南
|
||||
</label>
|
||||
@@ -882,7 +796,7 @@ mkdocs-git-revision-date-localized-plugin
|
||||
<nav class="md-footer__inner md-grid" aria-label="页脚" >
|
||||
|
||||
|
||||
<a href="build.html" class="md-footer__link md-footer__link--prev" aria-label="上一页: 本地部署">
|
||||
<a href="frontend.html" class="md-footer__link md-footer__link--prev" aria-label="上一页: 前端开发">
|
||||
<div class="md-footer__button md-icon">
|
||||
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11z"/></svg>
|
||||
@@ -892,7 +806,7 @@ mkdocs-git-revision-date-localized-plugin
|
||||
上一页
|
||||
</span>
|
||||
<div class="md-ellipsis">
|
||||
本地部署
|
||||
前端开发
|
||||
</div>
|
||||
</div>
|
||||
</a>
|
||||
|
||||
@@ -225,24 +225,6 @@
|
||||
|
||||
|
||||
|
||||
<li class="md-tabs__item">
|
||||
<a href="doc/build.html" class="md-tabs__link">
|
||||
|
||||
|
||||
部署指南
|
||||
|
||||
</a>
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<li class="md-tabs__item">
|
||||
<a href="doc/mkdocs.html" class="md-tabs__link">
|
||||
|
||||
@@ -445,6 +427,15 @@
|
||||
</span>
|
||||
</a>
|
||||
|
||||
</li>
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="#docker" class="md-nav__link">
|
||||
<span class="md-ellipsis">
|
||||
docker 部署
|
||||
</span>
|
||||
</a>
|
||||
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
@@ -829,7 +820,7 @@
|
||||
|
||||
|
||||
<span class="md-ellipsis">
|
||||
部署指南
|
||||
文档指南
|
||||
|
||||
</span>
|
||||
|
||||
@@ -839,74 +830,6 @@
|
||||
|
||||
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_3_label" aria-expanded="false">
|
||||
<label class="md-nav__title" for="__nav_3">
|
||||
<span class="md-nav__icon md-icon"></span>
|
||||
部署指南
|
||||
</label>
|
||||
<ul class="md-nav__list" data-md-scrollfix>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="doc/build.html" class="md-nav__link">
|
||||
|
||||
|
||||
<span class="md-ellipsis">
|
||||
本地部署
|
||||
|
||||
</span>
|
||||
|
||||
|
||||
</a>
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
|
||||
</ul>
|
||||
</nav>
|
||||
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<li class="md-nav__item md-nav__item--nested">
|
||||
|
||||
|
||||
|
||||
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_4" >
|
||||
|
||||
|
||||
<label class="md-nav__link" for="__nav_4" id="__nav_4_label" tabindex="0">
|
||||
|
||||
|
||||
<span class="md-ellipsis">
|
||||
文档指南
|
||||
|
||||
</span>
|
||||
|
||||
|
||||
<span class="md-nav__icon md-icon"></span>
|
||||
</label>
|
||||
|
||||
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_4_label" aria-expanded="false">
|
||||
<label class="md-nav__title" for="__nav_4">
|
||||
<span class="md-nav__icon md-icon"></span>
|
||||
文档指南
|
||||
</label>
|
||||
@@ -1054,6 +977,15 @@
|
||||
</span>
|
||||
</a>
|
||||
|
||||
</li>
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="#docker" class="md-nav__link">
|
||||
<span class="md-ellipsis">
|
||||
docker 部署
|
||||
</span>
|
||||
</a>
|
||||
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
@@ -1578,6 +1510,41 @@
|
||||
<li>账号:<code>admin</code> 密码:<code>123456</code></li>
|
||||
<li>接口地址:<a href="http://127.0.0.1:8000/api/v1/docs">http://127.0.0.1:8000/api/v1/docs</a></li>
|
||||
</ul>
|
||||
<h3 id="docker">docker 部署</h3>
|
||||
<ul>
|
||||
<li>cd fastapi_vue3_amdin/frontend</li>
|
||||
<li>npm run build (保证dist前端打包内容存在,否则运行会报错)</li>
|
||||
<li>cd fastapi_vue3_amdin</li>
|
||||
<li>docker compose up -d</li>
|
||||
<li>注意事项:</li>
|
||||
<li>前端.env.production 中 VITE_API_BASE_URL需要修改为公网地址</li>
|
||||
<li>后端.env.prod 中 MYSQL_HOST、REDIS_HOST需要改为私网地址</li>
|
||||
<li>遇到问题:</li>
|
||||
<li>后端启动报错:一般是由于初始化脚本没有执行,脚本目录:backend/sql/mysql_xxx.sql</li>
|
||||
<li>还有可能是因为mysql、redis中间件没有启动,需要手动启动</li>
|
||||
<li>部署顺序:</li>
|
||||
<li>
|
||||
<ol>
|
||||
<li>启动mysql、redis中间件</li>
|
||||
</ol>
|
||||
</li>
|
||||
<li>
|
||||
<ol>
|
||||
<li>执行初始化脚本</li>
|
||||
</ol>
|
||||
</li>
|
||||
<li>
|
||||
<ol>
|
||||
<li>启动后端服务</li>
|
||||
</ol>
|
||||
</li>
|
||||
<li>
|
||||
<ol>
|
||||
<li>启动前端服务</li>
|
||||
</ol>
|
||||
</li>
|
||||
<li>访问地址:公网地址,80端口;登录admin/123456</li>
|
||||
</ul>
|
||||
<h2 id="_11">🔧 模块展示</h2>
|
||||
<h3 id="_12">登陆</h3>
|
||||
<p><img alt="登陆" src="resources/images/login.png" /></p>
|
||||
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 205 KiB After Width: | Height: | Size: 207 KiB |
File diff suppressed because one or more lines are too long
@@ -2,22 +2,18 @@
|
||||
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
|
||||
<url>
|
||||
<loc>http://127.0.0.1:8888/index.html</loc>
|
||||
<lastmod>2025-04-16</lastmod>
|
||||
<lastmod>2025-05-17</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>http://127.0.0.1:8888/doc/backend.html</loc>
|
||||
<lastmod>2025-04-16</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>http://127.0.0.1:8888/doc/build.html</loc>
|
||||
<lastmod>2025-04-16</lastmod>
|
||||
<lastmod>2025-05-17</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>http://127.0.0.1:8888/doc/frontend.html</loc>
|
||||
<lastmod>2025-04-16</lastmod>
|
||||
<lastmod>2025-05-17</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>http://127.0.0.1:8888/doc/mkdocs.html</loc>
|
||||
<lastmod>2025-04-16</lastmod>
|
||||
<lastmod>2025-05-17</lastmod>
|
||||
</url>
|
||||
</urlset>
|
||||
Binary file not shown.
Reference in New Issue
Block a user