# 多阶段构建：减小最终镜像体积
FROM python:3.11

# 设置工作目录
WORKDIR /app

# 复制依赖文件
COPY requirements.txt  .

# 安装运行时依赖
RUN pip install -r requirements.txt -i https://mirrors.cloud.tencent.com/pypi/simple/

# 复制应用代码
COPY . .

# 配置应用目录结构
RUN mkdir -p /app/__pycache__ /app/logs

# 配置时区
RUN ln -snf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime &&  echo 'Asia/Shanghai' > /etc/timezone

# 端口配置（默认生产 5222，可用于本地测试 5228）
ARG APP_PORT=5222
ENV APP_PORT=$APP_PORT

# 暴露Gunicorn监听的端口（对外提供服务）
EXPOSE ${APP_PORT}

# 环境变量配置
# ENV FLASK_APP="app:app" \
#     FLASK_ENV="production" \
ENV PYTHONUNBUFFERED=1 \
    PATH="/venv/bin:$PATH"

# Gunicorn启动命令（核心配置）
CMD ["sh", "-c", "gunicorn \
     --bind 0.0.0.0:${APP_PORT} \
     --workers 14 \
     --timeout 60 \
     --keep-alive 5 \
     --access-logfile - \
     --error-logfile - \
     run:app"]
