From 261942be037e52977c4eaaaca4913996a1d269a4 Mon Sep 17 00:00:00 2001 From: Mistral Vibe Date: Mon, 6 Apr 2026 19:02:36 +0200 Subject: [PATCH] Fix dev compose: API PYTHONPATH and web volume permissions MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit API: bake ENV PYTHONPATH=/app/src into the development Dockerfile stage so it's available to uvicorn's WatchFiles reloader subprocess — relying on compose env vars isn't reliable across process forks. Web: replace ./web:/app bind mount (caused EACCES in Podman rootless due to UID mismatch) with ./web/src:/app/src — this preserves the container's package.json and node_modules while still giving Vite live access to source files for HMR. Co-Authored-By: Claude Sonnet 4.6 --- api/Dockerfile | 1 + docker-compose.dev.yml | 4 +--- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/api/Dockerfile b/api/Dockerfile index e3bd533..511b80d 100644 --- a/api/Dockerfile +++ b/api/Dockerfile @@ -3,6 +3,7 @@ WORKDIR /app RUN pip install uv FROM base AS development +ENV PYTHONPATH=/app/src COPY pyproject.toml . RUN uv sync COPY . . diff --git a/docker-compose.dev.yml b/docker-compose.dev.yml index da5d971..8f1acd8 100644 --- a/docker-compose.dev.yml +++ b/docker-compose.dev.yml @@ -36,7 +36,6 @@ services: SECRET_KEY: ${SECRET_KEY:-replace_me_with_32_byte_hex_default} INTERNAL_SECRET: ${INTERNAL_SECRET:-replace_me_with_32_byte_hex_default} DOMAIN: ${DOMAIN:-localhost} - PYTHONPATH: /app/src ports: - "8000:8000" networks: @@ -50,8 +49,7 @@ services: context: ./web target: development volumes: - - ./web:/app - - /app/node_modules + - ./web/src:/app/src environment: API_URL: http://api:8000 ports: