Files
FastapiAdmin/docker/backend/Dockerfile
T
zhangtao 80263e98e1 feat: 重构前端项目结构并优化代码
refactor: 迁移前端资源文件至web目录
feat: 新增多种图标资源
style: 统一代码风格和格式化配置
docs: 更新README和文档说明
chore: 更新依赖和配置文件
fix: 修复部分类型定义和枚举
perf: 优化路由和组件加载逻辑
2026-05-01 01:01:17 +08:00

56 lines
1.1 KiB
Docker

# 第一阶段:构建依赖
FROM python:3.10-slim as builder
# 设置时区
ENV TZ Asia/Shanghai
# 设置容器内工作目录
WORKDIR /build
# 安装系统依赖
RUN apt-get update && apt-get install -y --no-install-recommends \
build-essential \
&& rm -rf /var/lib/apt/lists/*
# 复制依赖文件
COPY ./backend/requirements.txt .
# 安装依赖到指定目录
RUN pip install --no-cache-dir -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple \
--target=/home/deps
# 第二阶段:运行环境
FROM python:3.10-slim
# 使用 LABEL 替代 MAINTAINER
LABEL maintainer="948080782@qq.com"
# 设置时区
ENV TZ Asia/Shanghai
# 创建非root用户
RUN useradd -m -u 1001 fastapiadmin
# 设置容器内工作目录
WORKDIR /home
# 从构建阶段复制依赖
COPY --from=builder /home/deps /home/deps
# 设置PYTHONPATH
ENV PYTHONPATH=/home/deps:$PYTHONPATH
# 复制应用代码
COPY ./backend/ .
# 更改文件权限
RUN chown -R fastapiadmin:fastapiadmin /home
# 切换到非root用户
USER fastapiadmin
# 运行应用
CMD ["python", "main.py", "run", "--env=prod"]
# 暴露端口
EXPOSE 8001