uvicorn api:app --host 0.0.0.0 --port 7777容器运行失败

docker logs pycorrector-container-gpu

你这个报错的核心是:

复制代码
ERROR: Error loading ASGI app, Could not import module "api".

这说明:

uvicorn api:app 没有找到 api.py 文件,或者没法导入 app 对象。


🔍 一步步排查你的命令问题

你的 docker run 命令如下(你写得有点乱,我先整理成正确格式):

bash 复制代码
docker run -d \
  --name pycorrector-container-gpu \
  --gpus "device=1" \
  -v /home/slx/pycorrector:/app/pycorrector \
  -p 7777:7777 \
  pycorrector:v2 \
  uvicorn api:app --host 0.0.0.0 --port 7777

✅ 问题出在这里:

你的代码实际在容器路径:

复制代码
/app/pycorrector/api.py

但你运行 uvicorn api:app 的时候,默认是在 / 根目录下执行的,这个目录下并没有 api.py,所以报错:

复制代码
Could not import module "api"

✅ 正确命令:加上 -w 参数,指定工作目录!

bash 复制代码
docker run -d \
  --name pycorrector-container-gpu \
  --gpus "device=1" \
  -v /home/slx/pycorrector:/app/pycorrector \
  -w /app/pycorrector \
  -p 7777:7777 \
  pycorrector:v2 \
  uvicorn api:app --host 0.0.0.0 --port 7777

说明:

  • -w /app/pycorrector 表示在容器中以这个路径作为"当前目录"执行命令
  • 所以 api:app 会去 /app/pycorrector/api.py 找 app = FastAPI(),就不会报错了

✅ 检查路径是否正确

如果你不确定 /app/pycorrector/api.py 是否真的存在,可以先进入容器验证:

bash 复制代码
docker exec -it pycorrector-container-gpu bash
ls /app/pycorrector/api.py

🧪 快速测试

你也可以先用交互模式进去看看:

bash 复制代码
docker run -it --rm \
  --gpus "device=1" \
  -v /home/slx/pycorrector:/app/pycorrector \
  -w /app/pycorrector \
  pycorrector:v2 \
  bash

然后在容器中手动运行:

bash 复制代码
uvicorn api:app --host 0.0.0.0 --port 7777

如果能成功,就说明你的 Docker 镜像和代码都没问题,只是路径设置错了。


✅ 完整总结:你只需这样运行

bash 复制代码
docker run -d \
  --name pycorrector-container-gpu \
  --gpus "device=1" \
  -v /home/slx/pycorrector:/app/pycorrector \
  -w /app/pycorrector \
  -p 7777:7777 \
  pycorrector:v2 \
  uvicorn api:app --host 0.0.0.0 --port 7777

之后用浏览器访问:http://localhost:7777/docs 即可。


如你不确定 api.py 结构或文件是否正确,可以把 api.py 的内容贴出来我帮你确认。

相关推荐
LBL12204 小时前
内网容器部署FTP日志监控服务
运维·服务器·容器
溜达的大象6 小时前
极空间部署Traggo时间追踪工具:Docker安装、标签管理与cpolar远程访问
运维·docker·容器
脏脏a6 小时前
极空间部署 Dashlet:Docker 搭建私人导航仪表盘,再配置固定公网访问
运维·docker·容器
User_芊芊君子7 小时前
Prometheus接入Pushgateway实战:二进制与Docker部署、指标推送及远程上报
docker·容器·prometheus
江湖有缘8 小时前
3款开源日记工具整理合集,可Docker一键部署!
docker·容器·开源
穷人小水滴20 小时前
用容器编译 VirtualBox 虚拟机软件 (ArchLinux, podman)
linux·容器·virtualbox
暗不需求20 小时前
Docker 入门:从「光盘与 DVD」到全栈项目容器化实战
docker·容器·面试
虎头金猫6 天前
4K 视频总卡在公网带宽?用 N1 + OpenList 把网盘播放链路重新理顺
运维·服务器·网络·python·容器·beautifulsoup·pandas
赵文宇(温玉)6 天前
CoreDNS的hosts插件的缺行配置导致k8s集群异常
容器·kubernetes·rancher
guo_wen_qiang6 天前
上传本地镜像到harbor中
docker·容器·持续部署