# 萌芽主页 API — 生产镜像（SQLite + 静态 logo）
FROM python:3.11-slim

WORKDIR /app

ENV PYTHONUNBUFFERED=1 \
    PYTHONDONTWRITEBYTECODE=1 \
    RUN_MODE=production \
    DATA_DIR=/app/data \
    PORT=5000

# 依赖
COPY requirements.txt .
RUN pip install --no-cache-dir --no-compile -r requirements.txt

# 应用代码
COPY app.py db.py schema.sql ./

# 技术栈 SVG：镜像内 ./data/logo；/app/logo-dist 供 entrypoint 在「空数据卷」时复制到挂载目录
COPY data/logo ./data/logo
COPY data/logo /app/logo-dist
COPY docker-entrypoint.sh /app/docker-entrypoint.sh
RUN chmod +x /app/docker-entrypoint.sh && mkdir -p /app/data/background

EXPOSE 5000

HEALTHCHECK --interval=30s --timeout=5s --start-period=20s --retries=3 \
  CMD python -c "import urllib.request; urllib.request.urlopen('http://127.0.0.1:5000/api')" || exit 1

ENTRYPOINT ["/app/docker-entrypoint.sh"]
CMD ["sh", "-c", "exec gunicorn --bind 0.0.0.0:${PORT:-5000} --workers 2 --threads 2 --timeout 60 --access-logfile - --error-logfile - app:app"]
