compliance/Dockerfile.fastapi
2025-08-19 14:44:57 +08:00

63 lines
1.4 KiB
Docker

# DMS合规性测试工具 - FastAPI版本 Dockerfile
# 多阶段构建,优化镜像大小
# 第一阶段:构建阶段
FROM python:3.9-alpine AS builder
# 安装构建依赖
RUN apk update && \
apk add --no-cache \
gcc \
musl-dev \
linux-headers \
libffi-dev \
openssl-dev \
cargo \
rust && \
rm -rf /var/cache/apk/*
# 设置工作目录
WORKDIR /app
# 复制requirements并安装Python依赖
COPY requirements_fastapi.txt .
RUN pip install --upgrade pip setuptools wheel && \
pip install --no-cache-dir --user -r requirements_fastapi.txt
# 第二阶段:运行时镜像
FROM python:3.9-alpine
# 安装运行时依赖
RUN apk update && \
apk add --no-cache \
curl \
bash && \
rm -rf /var/cache/apk/*
# 从构建阶段复制Python包
COPY --from=builder /root/.local /root/.local
# 设置工作目录
WORKDIR /app
# 复制应用代码
COPY . .
# 创建必要目录
RUN mkdir -p /app/logs /app/test_reports /app/uploads
# 设置环境变量
ENV PATH=/root/.local/bin:$PATH
ENV PYTHONPATH=/app
ENV PYTHONUNBUFFERED=1
# 暴露端口
EXPOSE 5050
# 健康检查
HEALTHCHECK --interval=30s --timeout=10s --start-period=40s --retries=3 \
CMD curl -f http://localhost:5050/ || exit 1
# 启动FastAPI服务器
CMD ["python3", "fastapi_server.py", "--host", "0.0.0.0", "--port", "5050"]