FastAPI部署Docker后访问/docs(Swagger UI)出现404错误求助
问题排查与解决
你的代码本身没问题,FastAPI默认就内置了Swagger UI(/docs)和ReDoc(/redoc),出现404大概率是Docker部署环节的配置问题,按下面的方向排查:
检查Docker启动命令是否正确指定应用入口
确保用uvicorn启动时,命令指向正确的FastAPI实例,比如:uvicorn main:app --host 0.0.0.0 --port 8000这里
main是你的Python文件名(如main.py),app是你创建的FastAPI实例对象。启动命令写错会导致文档路由无法加载。确认Docker容器端口映射是否正确
启动容器时要把容器内的服务端口映射到宿主机,比如:docker run -p 8000:8000 your-image-name端口不匹配会导致访问
/docs时出现404。检查是否设置了路由前缀
如果创建FastAPI实例时设置了root_path,或者用反向代理加了路由前缀,访问Swagger UI需要带上前缀。比如:app = FastAPI(root_path="/api")这时要访问
/api/docs才能打开Swagger UI。验证容器内是否能正常访问/docs
进入容器内部用curl测试:docker exec -it your-container-name curl http://localhost:8000/docs如果容器内访问正常,问题出在宿主机到容器的网络或反向代理配置;如果容器内也404,重点检查启动命令是否正确。
内容的提问来源于stack exchange,提问作者katseye
相关产品推荐
相关产品推荐

