From f5cb6e47ce78feac218899ff056c4d582a63b87c Mon Sep 17 00:00:00 2001 From: Trustable User Date: Fri, 10 Jul 2026 23:39:06 +0200 Subject: [PATCH] Preinstall Python dependencies in system API image --- Dockerfile | 20 +++++++++++++------- run.sh | 2 +- 2 files changed, 14 insertions(+), 8 deletions(-) diff --git a/Dockerfile b/Dockerfile index 2baad9a..4c5ef97 100644 --- a/Dockerfile +++ b/Dockerfile @@ -32,18 +32,24 @@ RUN useradd -m -u 1001 -s /bin/bash openserverless WORKDIR /home/openserverless -# Copy source code con permessi corretti -ADD --chown=openserverless:openserverless openserverless /home/openserverless/openserverless/ -ADD --chown=openserverless:openserverless run.sh pyproject.toml uv.lock /home/openserverless/ - # Install uv (Python dependency manager) RUN pip install --no-cache-dir uv -# Install dependencies +# Copy dependency metadata first so this layer remains cached when only source +# code changes. +COPY --chown=openserverless:openserverless pyproject.toml uv.lock /home/openserverless/ + +# Resolve and download all runtime dependencies while building the image. USER openserverless -RUN uv venv && uv pip install --requirement pyproject.toml +RUN uv sync --frozen --no-dev --no-install-project \ + && rm -rf /home/openserverless/.cache/uv + +# Copy source code after dependencies have been installed. +COPY --chown=openserverless:openserverless openserverless /home/openserverless/openserverless/ +COPY --chown=openserverless:openserverless run.sh /home/openserverless/run.sh ENV HOME=/home/openserverless +ENV PATH="/home/openserverless/.venv/bin:${PATH}" EXPOSE 5000 -CMD ["uv", "run", "-m", "openserverless"] +CMD ["python", "-m", "openserverless"] diff --git a/run.sh b/run.sh index 1c2d5ed..16cc9e6 100755 --- a/run.sh +++ b/run.sh @@ -16,4 +16,4 @@ # specific language governing permissions and limitations # under the License. # -uv run -m openserverless "$@" +exec /home/openserverless/.venv/bin/python -m openserverless "$@"