FROM python:3.13-slim ENV PYTHONDONTWRITEBYTECODE=1 \ PYTHONUNBUFFERED=1 \ TZ=Asia/Shanghai \ VIRTUAL_ENV=/opt/venv ENV PATH="$VIRTUAL_ENV/bin:$PATH" RUN apt-get update \ && apt-get install -y --no-install-recommends tzdata ca-certificates \ && rm -rf /var/lib/apt/lists/* WORKDIR /app RUN python -m venv "$VIRTUAL_ENV" \ && pip install --no-cache-dir uv COPY pyproject.toml uv.lock /app/ RUN uv sync --frozen --no-dev --no-install-project --active COPY config.defaults.toml /app/config.defaults.toml COPY app /app/app COPY main.py /app/main.py COPY scripts /app/scripts RUN mkdir -p /app/data /app/data/tmp /app/logs EXPOSE 8000 ENTRYPOINT ["/app/scripts/entrypoint.sh"] CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "8000"]