# 事件提醒 · Linux 服务器版 - Docker 镜像
# 默认基础镜像 ubuntu:24.04（大陆访问 docker.io/library/python 常超时）。
# 可通过 --build-arg BASE_IMAGE=registry.cn-hangzhou.aliyuncs.com/library/ubuntu:24.04
# 或任意私有镜像源覆盖。
ARG BASE_IMAGE=ubuntu:24.04
FROM ${BASE_IMAGE}

# 非交互 + 时区（提醒按本地时间计算，建议设成东八区）
ENV DEBIAN_FRONTEND=noninteractive \
    TZ=Asia/Shanghai \
    PYTHONUNBUFFERED=1 \
    EVENT_REMINDER_HOME=/app/data \
    HOST=0.0.0.0 \
    PORT=5000

# 换阿里云 apt 源，加速安装；若阿里源不可用，注释掉下面两条 RUN sed
RUN sed -i 's|http://archive.ubuntu.com|http://mirrors.aliyun.com|g' /etc/apt/sources.list.d/ubuntu.sources && \
    sed -i 's|http://security.ubuntu.com|http://mirrors.aliyun.com|g' /etc/apt/sources.list.d/ubuntu.sources

# 安装 Python3 + venv（Ubuntu 24.04 默认 Python 3.12）
RUN apt-get update && \
    apt-get install -y python3 python3-venv python3-pip tzdata && \
    apt-get clean && rm -rf /var/lib/apt/lists/*

WORKDIR /app

# 用 venv 安装依赖（兼容 Ubuntu 24.04 的 externally-managed 策略，也避免污染系统 Python）
RUN python3 -m venv /app/venv
COPY requirements.txt .
RUN /app/venv/bin/pip install --no-cache-dir -r requirements.txt

# 再拷源码
COPY . .

# 数据目录（持久化用卷挂载）
RUN mkdir -p /app/data

EXPOSE 5000

# 前台运行，容器管理生命周期；数据落在 /app/data（挂卷）
CMD ["/app/venv/bin/python", "app.py"]
