FROM python:3.11

# 1. 替换为腾讯云APT源 + 仅装时区依赖
RUN sed -i 's/deb.debian.org/mirrors.tencent.com/g' /etc/apt/sources.list.d/debian.sources && \
    apt update && apt install -y --no-install-recommends tzdata && \
    rm -rf /var/lib/apt/lists/*

# 2. 核心环境变量
ENV PYTHONDONTWRITEBYTECODE=1 \    
    PYTHONUNBUFFERED=1 \           
    FLASK_APP=run:app \            
    TZ=Asia/Shanghai               

# 3. 设置时区
RUN ln -snf /usr/share/zoneinfo/${TZ} /etc/localtime && echo ${TZ} > /etc/timezone

# 4. 工作目录 + 非root用户
WORKDIR /app
RUN groupadd -r appuser && useradd -r -g appuser appuser && chown -R appuser:appuser /app

# 新增图片存放地址
RUN mkdir -p /app/logs /app/uploads \
    && chown -R appuser:appuser /app/logs /app/uploads \ 
    && chmod -R 777 /app/logs /app/uploads

USER appuser

# 5. 腾讯云PyPI源 + 极简提速依赖安装
COPY --chown=appuser:appuser requirements.txt /app/
RUN python -m venv /app/venv && \
    # /app/venv/bin/pip install --no-cache-dir --upgrade pip && \
    /app/venv/bin/pip install --no-cache-dir --prefer-binary -r requirements.txt -i https://mirrors.cloud.tencent.com/pypi/simple/

# 6. 复制项目文件
COPY --chown=appuser:appuser . /app/

# 7. 切换非root用户
USER appuser

# 8. 暴露端口
EXPOSE 5221

# 9. 启动Gunicorn
CMD ["/app/venv/bin/gunicorn", "--bind", "0.0.0.0:5221", "--workers", "7", "--threads", "2", "run:app"]