小编Eve*_*900的帖子

Uvicorn --reload 使用 WatchFiles 不适用于 Docker 容器中的 FastAPI

我正在开发一个 FastAPI 应用程序。它使用 docker-compose 在 Docker 容器中的 Uvicorn 上运行。

\n

我想包含一些文件,而不是*.py在开发过程中触发自动重新加载。

\n

根据文档, Uvicorn 需要安装可选的依赖项 WatchFiles 才能使用该--reload-include标志,这将使我能够包含其他文件类型来触发重新加载。但是,当安装 WatchFiles 时(Uvicorn 通过在启动时打印此信息来确认:)Started reloader process [1] using WatchFiles根本不会发生自动重新加载。请注意,这与运行命令的更改无关,无论是否包含包含标志。

\n

如果没有安装 WatchFiles,Uvicorn 的默认自动重新加载功能仅适用于*.py文件。

\n

我有什么

\n

这是 Dockerfile:

\n
FROM python:3.10\n\nWORKDIR /tmp\n\nRUN pip install --upgrade pip\n\nCOPY requirements.txt .\nRUN pip install --no-cache-dir --upgrade -r requirements.txt\n\nWORKDIR /code\n\nCMD ["uvicorn", "package.main:app", "--host", "0.0.0.0", "--port", "80", "--reload"]\n
Run Code Online (Sandbox Code Playgroud)\n

这是 docker-compose.yml:

\n
FROM python:3.10\n\nWORKDIR /tmp\n\nRUN pip install --upgrade pip\n\nCOPY requirements.txt …
Run Code Online (Sandbox Code Playgroud)

python docker docker-compose fastapi uvicorn

7
推荐指数
1
解决办法
9495
查看次数

标签 统计

docker ×1

docker-compose ×1

fastapi ×1

python ×1

uvicorn ×1