diff --git a/Dockerfile b/Dockerfile index c53bf0c..3e66cc9 100644 --- a/Dockerfile +++ b/Dockerfile @@ -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 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/* WORKDIR /app diff --git a/docker/start.sh b/docker/start.sh index 1b5f502..86a5d2a 100644 --- a/docker/start.sh +++ b/docker/start.sh @@ -18,7 +18,11 @@ else fi 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" cd "${WORKTREE_DIR}/frontend" @@ -27,7 +31,7 @@ npm run build echo "[start] launching backend:${BACKEND_PORT} and frontend:${FRONTEND_PORT}" cd "${WORKTREE_DIR}/backend" -python3 app.py & +"${VENV_DIR}/bin/python" app.py & BACKEND_PID=$! cd "${WORKTREE_DIR}/frontend"