# 后端镜像:FastAPI + uv FROM python:3.13-slim # uv:从官方镜像拷贝二进制 COPY --from=ghcr.io/astral-sh/uv:latest /uv /uvx /bin/ WORKDIR /app ENV UV_COMPILE_BYTECODE=1 \ UV_LINK_MODE=copy \ PYTHONUNBUFFERED=1 # 先装依赖(利用缓存层) COPY pyproject.toml uv.lock ./ RUN uv sync --frozen --no-install-project --no-dev # 再拷贝应用代码 COPY app ./app COPY alembic.ini ./ COPY entrypoint.sh ./ RUN uv sync --frozen --no-dev && chmod +x entrypoint.sh EXPOSE 8000 # 启动前先跑迁移 ENTRYPOINT ["./entrypoint.sh"]