FROM python:3.13.7-alpine3.22

ENV PYTHONDONTWRITEBYTECODE=1 \
    PYTHONUNBUFFERED=1 \
    PIP_NO_CACHE_DIR=1 \
    PIP_DISABLE_PIP_VERSION_CHECK=1 \
    TZ=Asia/Shanghai \
    DATABASE_URL=postgresql://trade:trade@postgres:5432/futures

WORKDIR /app

# 时区(psycopg[binary] wheel 自带 libpq,不再需要系统装 libpq)
RUN apk add --no-cache tzdata \
    && cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \
    && echo "Asia/Shanghai" > /etc/timezone

COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt

# 非 root 用户
RUN adduser -D -u 1000 app \
    && mkdir -p /app/data \
    && chown app:app /app/data

COPY --chown=app:app src ./src
USER app

CMD ["uvicorn", "src.api:app", "--host", "0.0.0.0", "--port", "8000"]
