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

上海室内软装设计公司排名seo怎么读

上海室内软装设计公司排名,seo怎么读,农机公司网站建设,建设网站困难的解决办法目标: 学习怎样在docker中安装部署FastAPI,完成项目结构的搭建以及hello world的运行 背景: 公司内服务器资源有限,为了共享算力资源,同时又能隔离运行环境,因此采用了docker部署的方式,进行各…

目标:

学习怎样在docker中安装部署FastAPI,完成项目结构的搭建以及hello world的运行

 

背景:

公司内服务器资源有限,为了共享算力资源,同时又能隔离运行环境,因此采用了docker部署的方式,进行各种开发测试。网上虽然已有集成fastapi+uvicorn+gunicorn,自己动手,可以了解更多细节,以及更深度的定制,从而学习怎样自定义镜像文件以及启动docker。

 

实现过程:

1、安装docker(系统已默认安装,可参照网上教程,以后另外再补记)

2、安装python。选用了3.11版

3、安装pycharm 社区版。

4、建立项目文件夹

project:my_fastapi

====app (目录)

     ----main.py

     ----requirements.txt

====docker (目录)

    ----Dockerfile

    ----docker-compose.yaml

5、编辑 main.py

import os
import sys
from multiprocessing import freeze_supportimport uvicorn
from fastapi import FastAPI, UploadFile, File
from fastapi.middleware.cors import CORSMiddleware
from contextlib import asynccontextmanagerupload_files_save_path = os.environ["UPLOAD_FILE"] if "UPLOAD_FILE" in os.environ else "/upload"@asynccontextmanager
async def lifespan(app: FastAPI):# 初始化阶段print('初始化成功..')yield# 清理阶段print('卸载成功..')app = FastAPI(root_path="/aiCentre", lifespan=lifespan)  # aicentre为nginx中api路由名
# 启用CORS支持
app.add_middleware(CORSMiddleware,allow_origins=["*"],allow_credentials=True,allow_methods=["*"],  # 或者只列出 ["POST", "GET", "OPTIONS", ...] 等allow_headers=["*"],
)# 路由
@app.get("/")
async def read_root():return {"message": "Hello World!"}@app.post("/uploadfile/")
async def create_upload_file(file: UploadFile = File(...)):file_location = f"files/{file.filename}"with open(file_location, "wb+") as file_object:file_object.write(await file.read())return {"info": f"file '{file.filename}' saved at '{file_location}'",}if __name__ == "__main__":freeze_support()uvicorn.run('main:app', host="0.0.0.0", port=8080, reload=True, workers=1)#current_dir = os.path.dirname(os.path.realpath(__file__))# 将项目根目录添加到 Python 路径中#sys.path.append(current_dir)# print(upload_files_save_path)

6、用pip freeze命令生成python库文件列表,用于移植。

 pip freeze > requirements.txt
annotated-types==0.7.0
anyio==4.9.0
click==8.1.8
colorama==0.4.6
fastapi==0.115.12
h11==0.14.0
idna==3.10
pydantic==2.11.1
pydantic_core==2.33.0
python-multipart==0.0.20
sniffio==1.3.1
starlette==0.46.1
typing-inspection==0.4.0
typing_extensions==4.13.0
uvicorn==0.34.0

7、编写 Dockerfile

# 建立 python3.11 环境
# FROM python:3.11FROM docker.1ms.run/python:3.11# 设置pip源为国内源
# COPY pip.conf /root/.pip/pip.conf# 镜像作者云无碍
LABEL maintainer="yunwuai <xxx@yyyy.zzzzz>"# 在容器内/var/www/html/下创建 mysite1文件夹
# RUN mkdir -p /var/www/html/mysite1
# 将当前目录文件加入到容器工作目录中(. 表示当前宿主机目录)
# ADD . /var/www/html/mysite1
RUN mkdir -p /app
RUN mkdir -p /uploadCOPY . /app
# 设置容器内工作目录
WORKDIR /app
# RUN echo $PWD
# 利用 pip 安装依赖
# 设置安装依赖包的镜像以及安装相关的依赖包,需要安装的依赖包以及版本提前在requirements.txt文件里写出来
RUN pip config set global.index-url https://mirrors.aliyun.com/pypi/simple/
RUN pip install -r /app/requirements.txt
# RUN pip3 install pandas numpy moviepy pydub matplotlib python-multipart uvicorn# 设置 python 环境变量
ENV PYTHON_ENV_TEST=/app# Run the start script, it will check for an /app/prestart.sh script (e.g. for migrations)
# And then will start Gunicorn with Uvicorn
# 声明运行时的端口
EXPOSE 8080# 运行Gunicorn服务器
# docker  build  -t  my_fastapi  .
CMD ["python","/app/main.py"]

  在app目录下运行

docker  build  -t my_fastapi:test -f ..\docker\Dockerfile . 

(最后有一个“.”号,这个很重要,代表当前目录,小白复制网上的代码时,很容易遗漏)

 或在项目目录下运行:

docker  build  -t my_fastapi:test -f docker\Dockerfile app

 

8、编写docker-compose.yaml

services:fastapi:image: my_fastapi:testports:- 8181:8080environment:ENV_PARAMS: test_paramMODEL_NAME: fastmodel

启动docker

docker-compose.exe -f docker\docker-compose.yaml up -d 

 

总结:

1、docker 运行时的端口镜像,前后顺序不要写错 是先宿主机再容器 即 -p 宿主机端口:容器内端口

2、docker build 时,最后一个参数为dockerfile中的“当前目录”,当出现文件无法复制或找不到文件时,一般都是当前路径设置有误.

3,启动docker-compose报错,很多时候是因为参数顺序搞错,把up -d放到 -f前面去了。up -d 一般在命令最后

4、fastAPI自带swagger功能,可以通过 http://127.0.0.1:8181/docs 和 http://127.0.0.1:8181/redoc进行访问和测试

 

 

 

 

 

http://www.dtcms.com/wzjs/55365.html

相关文章:

  • win7 iis搭建网站教程正规网站建设公司
  • 为什么做电商网站网站备案是什么意思
  • 免费发布黄页广告网站seo内容优化是什么
  • 兰州网站优化推广百度信息流投放技巧
  • 龙岗网站设计效果2022年可以打开的网址
  • 阿里巴巴国内网站怎么做91
  • 做网站纸张大小百度seo是啥意思
  • 无锡专业做网站的公司哪家好排行榜哪个网站最好
  • wordpress 宅男猫网站广告咨询
  • 中国建设银行青浦支行网站经典软文案例100例简短
  • 锐狐 网站 后台网站收录怎么弄
  • 做矿业的郑州公司网站福州seo视频
  • 用html做网站网站制作哪家公司好
  • 想给公司做网站中企动力靠谱吗重庆高端网站seo
  • 网站接入商排名大连今日新闻头条
  • 企业网站创建步百度软文推广怎样收费
  • 泰州网站建设解决方案合肥seo搜索优化
  • 门户网站建设解决方案seo关键字排名优化
  • 泰安网站设计网络营销主要有哪些特点
  • 国内网站免备案模板网站哪个好
  • 免费建站建站云优化
  • 后台管理网站名网络软文发布
  • 商务网站建设包含了qq推广工具
  • html代码有哪些百度搜索引擎优化的推广计划
  • 网站如何做品牌营销广州30万人感染
  • 滨州建设厅网站韩国比分预测
  • wordpress国内怎么上seo营销网站的设计标准
  • 做电锯电音的网站惠州seo博客
  • 做网站用的什么语言重庆网站关键词排名优化
  • 商务定制网站北京百度推广开户