Files
DjangoAdmin_FastAPI_NaiveVue/Dockerfile
T
2026-09-12 18:24:41 +08:00

62 lines
2.3 KiB
Docker
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# +======================================================================
# | 模块: Docker 镜像构建文件
# | 说明: 基于 Python 3.11-slim 构建 FastAPI+NaiveVue 应用镜像
# +======================================================================
# ============================================================
# 基础镜像
# ============================================================
# 使用仍受支持的 Python 版本(python:3.9 已于 2025-10 停止安全更新)
FROM python:3.11-slim
# 镜像作者(MAINTAINER 指令已废弃,改用 LABEL)
LABEL maintainer="管理员"
# ============================================================
# 环境变量配置
# ============================================================
# 设置 python 环境变量
ENV PYTHONUNBUFFERED 1
ENV PYTHONDONTWRITEBYTECODE 1
# 设置时区
ENV TZ Asia/Shanghai
# ============================================================
# 镜像源配置
# ============================================================
# 使用国内镜像源(使用 https,避免 http 明文传输被篡改)
RUN pip config set global.index-url https://mirrors.aliyun.com/pypi/simple
RUN pip config set install.trusted-host mirrors.aliyun.com
# ============================================================
# 安装依赖
# ============================================================
# 创建并进入容器工作目录
WORKDIR /data/apps
# 先拷贝依赖清单并安装,利用 Docker 层缓存(源码变更不会触发重复安装依赖)
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
# ============================================================
# 复制源码
# ============================================================
# 拷贝全部源码(.dockerignore 已排除上传目录/缓存/测试等,避免镜像膨胀)
COPY . /data/apps
# ============================================================
# 暴露端口与启动命令
# ============================================================
# 暴露应用端口
EXPOSE 8031
# 启动命令:FastAPI 为 ASGI 应用,使用 uvicorn
# 绑定 0.0.0.0 使 `docker run -p 8031:8031 fastapi_naivevue` 可直接访问;
# compose 场景下由 docker-compose.yml 的 command 覆盖
CMD ["uvicorn", "main:app", "--app-dir", "src", "--host", "0.0.0.0", "--port", "8031"]