Fra*_*leo 5 python gunicorn docker fastapi uvicorn
按照uvicorn-gunicorn-fastapi-docker中的文档,我应该通过运行以下命令来运行我的图像:
docker run -d -p 80:80 -v $(pwd):/app myimage /start-reload.sh
Run Code Online (Sandbox Code Playgroud)
但我得到:
Usage: uvicorn [OPTIONS]
Try 'uvicorn --help' for help.
Error: Got unexpected extra argument (/start-reload.sh)
Run Code Online (Sandbox Code Playgroud)
我成功地使用我在这里找到的调试模式挂载了一个卷?但我认为它不够优雅,每次进行更改时我都必须运行它(至少我不必构建图像)
docker run --name ${containerName} \
--env GUNICORN_CMD_ARGS="--reload" \
-p 5000:5000 \
-v $(pwd)/app:/app \
${imageName}:${versionTag}
Run Code Online (Sandbox Code Playgroud)
我的 Dockerfile 只是:
FROM tiangolo/uvicorn-gunicorn-fastapi:latest
EXPOSE 5000
COPY ./app /app
ENTRYPOINT ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "5000"]
Run Code Online (Sandbox Code Playgroud)
它按预期工作。
当我更改代码时可以重新加载吗?
小智 0
只需添加--reload到对我有用的入口点:
ENTRYPOINT ["uvicorn", "main:app", "--reload","--host", "0.0.0.0", "--port", "5000"]
Run Code Online (Sandbox Code Playgroud)