FROM ghcr.io/astral-sh/uv:python3.12-bookworm

# Install uv.
COPY --from=ghcr.io/astral-sh/uv:latest /uv /bin/uv

# Install system dependencies including libpq
RUN apt-get update && apt-get install -y \
    libpq-dev git \
    && rm -rf /var/lib/apt/lists/*
    
WORKDIR /app

# 🚀 优化 1：先拷贝依赖清单，利用缓存
# 🚀 修复：路径改为小写 deep-flow 以匹配实际文件名
COPY deep-flow/pyproject.toml deep-flow/uv.lock ./

# Pre-cache the application dependencies.
RUN --mount=type=cache,target=/root/.cache/uv \
    uv sync --locked --no-install-project

# 🚀 优化 2：再拷贝完整源码
COPY deep-flow/ ./

# 🚀 确保运行时配置覆盖源码配置
COPY runtime/deep-flow/.env ./
COPY runtime/deep-flow/conf.yaml ./

# Install the application dependencies.
RUN --mount=type=cache,target=/root/.cache/uv \
    uv sync --locked

EXPOSE 8000

# Run the application.
CMD ["uv", "run", "--no-sync", "python", "server.py", "--host", "0.0.0.0", "--port", "8000"]
