FROM python:3.12-slim WORKDIR /app COPY pyproject.toml ./ RUN pip install --no-cache-dir -i https://pypi.tuna.tsinghua.edu.cn/simple \ fastapi uvicorn[standard] sqlalchemy[asyncio] asyncpg alembic \ pydantic pydantic-settings python-jose[cryptography] passlib[bcrypt] \ python-multipart redis httpx structlog COPY . . EXPOSE 8000 CMD ["uvicorn", "app.main:app", "--host", "0.0.0.0", "--port", "8000"]