更新 dockerfile 中对于 uv 的配置

This commit is contained in:
Wenjie Zhang 2025-05-07 00:38:42 +08:00
parent 7449938775
commit d9ef3fc3e3

View File

@ -1,9 +1,16 @@
# 使用基础镜像
FROM python:3.12
COPY --from=ghcr.io/astral-sh/uv:0.7.2 /uv /uvx /bin/
# 设置工作目录
WORKDIR /app
# 设置时区为 UTC+8
ENV TZ=Asia/Shanghai
ENV UV_LINK_MODE=copy
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
# 安装系统依赖
RUN apt-get update && apt-get install -y \
python3-dev \
@ -11,16 +18,19 @@ RUN apt-get update && apt-get install -y \
libsm6 \
libxext6
# 复制 requirements.txt 文件这一步如果文件没变Docker 会使用缓存)
# COPY../requirements.txt /app/requirements.txt
COPY ../pyproject.toml /app/pyproject.toml
COPY ../.python-version /app/.python-version
# 安装依赖Docker 会缓存这一步,除非 requirements.txt 发生变化)
RUN pip install uv
RUN uv sync
# 安装依赖项
RUN --mount=type=cache,target=/root/.cache/uv \
--mount=type=bind,source=uv.lock,target=uv.lock \
--mount=type=bind,source=pyproject.toml,target=pyproject.toml \
uv sync --frozen --no-install-project
# 复制代码到容器中
COPY ../src /app/src
COPY ../server /app/server
COPY ../pyproject.toml /app/pyproject.toml
COPY ../.python-version /app/.python-version
COPY ../uv.lock /app/uv.lock
# 同步项目
RUN --mount=type=cache,target=/root/.cache/uv \
uv sync --frozen