29 lines
684 B
Docker
29 lines
684 B
Docker
FROM python:3.14-slim
|
|
|
|
WORKDIR /workspace
|
|
|
|
ENV UV_PROJECT_ENVIRONMENT=/usr/local
|
|
ENV PYTHONUNBUFFERED=1
|
|
|
|
# Install curl (for healthcheck).
|
|
RUN apt-get update && apt-get install -y \
|
|
curl \
|
|
&& rm -rf /var/lib/apt/lists/*
|
|
|
|
# Install UV from the official image and copy it to the current image.
|
|
COPY --from=ghcr.io/astral-sh/uv:latest /uv /usr/local/bin/uv
|
|
|
|
# 先复制依赖文件并同步
|
|
COPY pyproject.toml uv.lock ./
|
|
|
|
# 确保 uv 会把项目安装为可导入的包 (Editable mode)
|
|
RUN uv sync --no-dev --no-install-project -v
|
|
|
|
# 现在的结构中,核心代码在 ./app 目录下
|
|
COPY . .
|
|
|
|
RUN uv sync --no-dev
|
|
|
|
EXPOSE 8000
|
|
|
|
CMD ["uv", "run", "python", "-m", "app.main"] |