当前位置: 首页 > news >正文

FastAPI docker demo

使用Docker来启动fastapi项目:

# 第一阶段:安装必要的软件
FROM python:3.12-slim as BASEENV DEBIAN_FRONTEND=noninteractive \PYTHONUNBUFFERED=1 \PIP_DEFAULT_TIMEOUT=100 \UV_SYSTEM_PYTHON=1# Install system packages
RUN set -eux; \python -c 'a="deb.debian.org";b="mirrors.aliyun.com";f="/etc/apt/sources.list.d/debian.sources";from pathlib import Path;p=Path(f);s=p.read_text();ss=s.replace(a,b);p.write_text(ss)' && \ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && \echo 'Asia/Shanghai' >/etc/timezone && \apt-get update && \apt-get install -y --no-install-recommends \build-essential \curl \pkg-config \libssl-dev \postgresql-client \libpq-dev \&& \apt-get clean && \rm -rf /var/lib/apt/lists/*# 第二阶段:安装Python依赖库
FROM base AS dependenciesWORKDIR /app# Install uv - Method 1: Copy the binary from its official image
# ghcr.io是github的官方镜像仓库,速度很慢,采用nju大学镜像源加速
# #COPY --from=ghcr.io/astral-sh/uv:latest /uv /uvx /bin/
COPY --from=ghcr.nju.edu.cn/astral-sh/uv:latest /uv /uvx /bin/# 如果nju的也慢,可以注释掉上面那行,改用pip安装:
# Install uv - Method 2: Install by pip
#RUN pip install --upgrade pip -i https://mirrors.aliyun.com/pypi/simple && \
#    pip install pip-conf-mirror -i https://mirrors.aliyun.com/pypi/simple && \
#    pip-conf-mirror --pip qinghua && pip install uv && pip-conf-mirror --uv qinghua# 复制项目依赖文件(优先复制依赖文件,利用 Docker 缓存)
COPY pyproject.toml uv.lock* ./# Install CPU pytorch
#RUN pip install --no-cache-dir torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cpu
# Install GPU pytorch
#RUN pip install --no-cache-dir torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu130# 使用 uv 安装项目依赖(直接安装到系统 Python 环境,不创建虚拟环境)
RUN uv pip install -i https://mirrors.aliyun.com/pypi/simple -r pyproject.toml && uv cache clean# 第三阶段:复制应用程序代码
FROM dependencies AS sourceWORKDIR /appCOPY . .# 第四阶段:生产环境镜像
FROM source AS releaseENV STAGE="production"
EXPOSE 8000CMD ["sh", "-c", "STAGE=$STAGE uvicorn main:app --host 0.0.0.0 --port 8000"]

Refs:
https://betterstack.com/community/guides/scaling-docker/docker-build-best-practices/
https://www.cnblogs.com/coreylin/p/17349146.html

http://www.rkmt.cn/news/57484.html

相关文章:

  • 2025年铁氟龙膜源头厂家权威推荐榜单:特氟龙膜/PTFE膜/聚四氟乙烯膜源头厂家精选
  • 我的代码入选GitHub北极代码库
  • 兰州市一对一培训机构推荐,2026年最新课外辅导补习机构口碑深度测评排名榜
  • 《算法通关指南数据结构和算法篇(3)--- 栈和stack》 - 教程
  • 实验三 类和对象_基础编程2
  • Ansible自动化运维:从入门到精通 - 详解
  • 配置SSH密钥统一推送Github和Gitee
  • 2025 最新网袋厂家实力推荐排行榜:全品类定制方案 + 前沿技术应用深度盘点,采购必看水果/尼龙/大葱/白菜/椰枣/水产/地瓜网袋公司推荐
  • 2026凉山州一对一家教机构推荐,五大辅导机构口碑排名已更新,附本地家长真实反馈评价!
  • 2025年景观绿雕植物源头厂家权威推荐榜单:植物雕塑/景观雕塑/仿真绿雕源头供应商精选
  • 2025 最新淮北外科医院推荐!外科医院口碑排行榜权威发布,二级医院资质 + 100 张床位,实力之选全解析
  • 2025 最新推荐网眼袋源头厂家权威榜单:全新原料精准编织 + 无中间环节,高性价比品牌测评指南蔬菜/洋葱/土豆/水果/尼龙网眼袋公司推荐
  • 2025年减速机定做厂家权威推荐榜单:伺服减速机/精密减速机/人形减速机定制厂家精选
  • HBase大数据存储如何提升读写性能
  • BOM和DOM
  • 2025高粱酒纯粮食酒推荐TOP10,纯粮固态发酵酱香浓郁回甘绵长
  • 玉树州一对一家教机构最新推荐,2026最新家教机构榜单:家长首选靠谱提分方案推荐
  • 2025年拉袋离心机订制厂家权威推荐榜单:碟式离心机/卧螺离心机/活塞推料离心机源头厂家精选
  • hbase上如何导入python包
  • Git为什么要有submodule呢?
  • 打印机字体漏洞分析:CVE-2024-12649技术深度解析
  • java freemarker(ftl)模板填充导出PDF,支持中文乱码
  • 2025 最新仿石漆厂家权威推荐榜:真石漆 / 绿色环保仿石漆优质品牌精选仿石漆/真石漆/绿色真石漆/有资质的仿石漆公司推荐
  • 2025年纱线烘干机制造厂权威推荐榜单:气流烘干机/筒子烘干机/快速烘干机源头制造厂精选
  • CF1630C Paint the Middle
  • P3113 [USACO14DEC] Marathon G
  • 崖山数据库导出 - 华
  • AI Compass前沿速览:Nano Banana Pro、Gemini 3 、 HunyuanVideo 1.5 、Meta SAM 3D生成
  • MX Round 27 解题报告
  • 11.22模拟赛