构建容器化 Python 应用程序
这里使用 Ultralytics Serving 作为示例,它是一个基于 FastAPI 和 Ultralytics YOLOv8 的模型推理服务。
选择 Python 镜像
| Tag | Python Version | OS Version | Size |
|---|---|---|---|
| 3.10 | 3.10 | Debian GNU/Linux 11 (bullseye) | 861MB |
| 3.10-slim | 3.10 | Debian GNU/Linux 11 (bullseye) | 114MB |
| 3.10-alpine | 3.10 | Alpine Linux 3.15.0 | 44.7MB |
克隆 Ultralytics Serving
git clone https://github.com/gouchicao/ultralytics-serving.git
cd ultralytics-serving
编写 Dockerfile
采用两阶段构建,第一阶段安装依赖环境和编译应用,第二阶段发布应用。第二阶段可以使用小一点的镜像,比如 python:3.10-slim 或 python:3.10-alpine。
普通版本 FROM python:3.10 AS builder ENV APP_HOME=/ultralytics-serving WORKDIR ${APP_HOME} # 提前安装,因为 cpu 版本需要指定 index-url。