diff --git a/backend/Dockerfile b/backend/Dockerfile index 9c93259adc3..853c74b05ca 100644 --- a/backend/Dockerfile +++ b/backend/Dockerfile @@ -59,9 +59,9 @@ RUN --mount=type=cache,target=/root/.cache/uv \ --extra semantic-router \ --python python3 -RUN mkdir -p /home/nonroot && \ - HOME=/home/nonroot prisma generate --schema=./schema.prisma && \ - chown -R nonroot:nonroot /home/nonroot/.cache +RUN HOME=/opt/prisma XDG_CACHE_HOME=/opt/prisma/.cache PRISMA_BINARY_CACHE_DIR=/opt/prisma/binaries \ + npm_config_cache=/root/.npm \ + prisma generate --schema=./schema.prisma RUN sed -i 's/\r$//' docker/component_entrypoint.sh && chmod +x docker/component_entrypoint.sh @@ -83,13 +83,16 @@ ENV HOME=/home/nonroot \ PATH="/app/.venv/bin:${PATH}" \ PYTHONPATH="/app" \ PYTHONDONTWRITEBYTECODE=1 \ - PYTHONUNBUFFERED=1 + PYTHONUNBUFFERED=1 \ + PRISMA_BINARY_CACHE_DIR=/opt/prisma/binaries COPY --from=builder --chown=nonroot:nonroot /app /app -COPY --from=builder --chown=nonroot:nonroot /home/nonroot/.cache /home/nonroot/.cache +COPY --from=builder /opt/prisma /opt/prisma RUN find /app/.venv -type f -path "*/tornado/test/*" -delete && \ - find /app/.venv -type d -path "*/tornado/test" -delete + find /app/.venv -type d -path "*/tornado/test" -delete && \ + chmod -R a+rX /opt/prisma && \ + python -c "from prisma.client import BINARY_PATHS; paths = list(BINARY_PATHS.query_engine.values()); assert paths and all(p.startswith('/opt/prisma/') for p in paths), paths" USER nonroot diff --git a/gateway/Dockerfile b/gateway/Dockerfile index 3b4f94d5dc9..223df524d7c 100644 --- a/gateway/Dockerfile +++ b/gateway/Dockerfile @@ -61,9 +61,9 @@ RUN --mount=type=cache,target=/root/.cache/uv \ --extra bedrock-realtime \ --python python3 -RUN mkdir -p /home/nonroot && \ - HOME=/home/nonroot prisma generate --schema=./schema.prisma && \ - chown -R nonroot:nonroot /home/nonroot/.cache +RUN HOME=/opt/prisma XDG_CACHE_HOME=/opt/prisma/.cache PRISMA_BINARY_CACHE_DIR=/opt/prisma/binaries \ + npm_config_cache=/root/.npm \ + prisma generate --schema=./schema.prisma RUN sed -i 's/\r$//' docker/component_entrypoint.sh && chmod +x docker/component_entrypoint.sh @@ -85,13 +85,16 @@ ENV HOME=/home/nonroot \ PATH="/app/.venv/bin:${PATH}" \ PYTHONPATH="/app" \ PYTHONDONTWRITEBYTECODE=1 \ - PYTHONUNBUFFERED=1 + PYTHONUNBUFFERED=1 \ + PRISMA_BINARY_CACHE_DIR=/opt/prisma/binaries COPY --from=builder --chown=nonroot:nonroot /app /app -COPY --from=builder --chown=nonroot:nonroot /home/nonroot/.cache /home/nonroot/.cache +COPY --from=builder /opt/prisma /opt/prisma RUN find /app/.venv -type f -path "*/tornado/test/*" -delete && \ - find /app/.venv -type d -path "*/tornado/test" -delete + find /app/.venv -type d -path "*/tornado/test" -delete && \ + chmod -R a+rX /opt/prisma && \ + python -c "from prisma.client import BINARY_PATHS; paths = list(BINARY_PATHS.query_engine.values()); assert paths and all(p.startswith('/opt/prisma/') for p in paths), paths" USER nonroot