Fix Docker startup install for externally managed Python environment.

Install python3-venv and move backend dependency installation/runtime to a dedicated venv to avoid PEP 668 pip errors inside Debian-based container.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
renjue
2026-05-09 16:43:11 +08:00
parent 3ed3d34900
commit ddbd79b951
2 changed files with 7 additions and 3 deletions

View File

@@ -6,7 +6,7 @@ ENV DEBIAN_FRONTEND=noninteractive
RUN sed -i "s|deb.debian.org|${APT_MIRROR}|g; s|security.debian.org|${APT_MIRROR}|g" /etc/apt/sources.list.d/debian.sources RUN sed -i "s|deb.debian.org|${APT_MIRROR}|g; s|security.debian.org|${APT_MIRROR}|g" /etc/apt/sources.list.d/debian.sources
RUN apt-get update \ RUN apt-get update \
&& apt-get install -y --no-install-recommends python3 python3-pip ca-certificates git \ && apt-get install -y --no-install-recommends python3 python3-pip python3-venv ca-certificates git \
&& rm -rf /var/lib/apt/lists/* && rm -rf /var/lib/apt/lists/*
WORKDIR /app WORKDIR /app

View File

@@ -18,7 +18,11 @@ else
fi fi
echo "[start] installing backend dependencies" echo "[start] installing backend dependencies"
python3 -m pip install --no-cache-dir -r "${WORKTREE_DIR}/backend/requirements.txt" VENV_DIR="${WORKTREE_DIR}/.venv"
if [ ! -x "${VENV_DIR}/bin/python" ]; then
python3 -m venv "${VENV_DIR}"
fi
"${VENV_DIR}/bin/pip" install --no-cache-dir -r "${WORKTREE_DIR}/backend/requirements.txt"
echo "[start] installing frontend dependencies and building" echo "[start] installing frontend dependencies and building"
cd "${WORKTREE_DIR}/frontend" cd "${WORKTREE_DIR}/frontend"
@@ -27,7 +31,7 @@ npm run build
echo "[start] launching backend:${BACKEND_PORT} and frontend:${FRONTEND_PORT}" echo "[start] launching backend:${BACKEND_PORT} and frontend:${FRONTEND_PORT}"
cd "${WORKTREE_DIR}/backend" cd "${WORKTREE_DIR}/backend"
python3 app.py & "${VENV_DIR}/bin/python" app.py &
BACKEND_PID=$! BACKEND_PID=$!
cd "${WORKTREE_DIR}/frontend" cd "${WORKTREE_DIR}/frontend"