uvicorn-gunicorn-fastapi

是fastapi官方提及的一个docker镜像,里面包含了一个简易的fastapi应用,同时配置好了gunicorn等组件。用此镜像启动一个容器,包含的简易的fastapi应用会自动运行。本文将替换这个简易的fastapi应用

准备工作

假设你已经下载好 “uvicorn-gunicorn-fastapi ” 镜像:
在这里插入图片描述

准备好你自己的fastapi应用

目录结构如下即可:

  • xxx.com
    • main.py
    • requirements.txt
    • …任意问文件或文件夹

其中main.py,必须是这个名字,不能更改,其内容如下:

from fastapi import FastAPI

app = FastAPI()

@app.get("/")
async def read_root():
    return {"message": "这是新的"}

其中”app = FastAPI()“,是关键,名字必须是app,必须是个全局变量。gunicorn等wsgi组件会导入此FastAPI实例。你可以在此文件中加入其他的所有视图或路由

假设我本机的目录是:/root/xxx.com

启动容器

docker run --privileged=true -v /root/wujin/rpa-support-app:/app -p 80:80 -d 1798e2413f6d /bin/bash -c "python -m pip install -r /app/requirements.txt -i  https://pypi.tuna.tsinghua.edu.cn/simple;/start.sh"
  • –privileged=true, 避免在容器没有权限读取本机/root/xxx.com文件导致启动失败
  • -v /root/xxx.com:/app,挂在本机目录到容器内目录
  • -p 80:80 端口映射,本机端口映射到容器端口
  • -d 1798e2413f6d,使用哪个镜像
  • /bin/bash -c “python -m pip install -r /app/requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple;/start.sh” 容器启动后执行命令。先安装python包再启动fastapi应用,否则会缺少依赖包无法启动。

验证

curl http://127.0.0.1

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐