From 9d14b852ee248b103caeb1d5c4b130537a4801be Mon Sep 17 00:00:00 2001 From: "Ehsan.Asadi" Date: Tue, 30 Dec 2025 16:17:55 +0330 Subject: [PATCH] fix(docker): resolve 'No module named reflex' in pod Problem: Python packages installed in /root/.local but container runs as non-root user 'peikarband' who cannot access /root/ directory. Solution: - Create user before copying dependencies - Copy packages to /home/peikarband/.local instead of /root/.local - Update PATH to point to user's local bin directory - Fix ownership of copied files This ensures the non-root user can access all Python packages including reflex. --- Dockerfile | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/Dockerfile b/Dockerfile index b1024c0..910e8ab 100644 --- a/Dockerfile +++ b/Dockerfile @@ -90,20 +90,22 @@ RUN curl -fsSL https://deb.nodesource.com/setup_20.x | bash - \ && rm -rf /var/lib/apt/lists/* \ && apt-get clean -# Copy Python dependencies from builder -COPY --from=builder /root/.local /root/.local +# Create non-root user first +RUN groupadd -r -g 1000 peikarband && \ + useradd -r -u 1000 -g peikarband -m -s /bin/bash peikarband && \ + mkdir -p /app/logs /app/uploads /app/.reflex + +# Copy Python dependencies from builder to user home +COPY --from=builder /root/.local /home/peikarband/.local # Copy application code from builder COPY --from=builder /build /app -# Create non-root user with specific UID/GID -RUN groupadd -r -g 1000 peikarband && \ - useradd -r -u 1000 -g peikarband -m -s /bin/bash peikarband && \ - mkdir -p /app/logs /app/uploads /app/.reflex && \ - chown -R peikarband:peikarband /app +# Fix ownership +RUN chown -R peikarband:peikarband /home/peikarband/.local /app # Set environment variables -ENV PATH=/root/.local/bin:$PATH \ +ENV PATH=/home/peikarband/.local/bin:$PATH \ PYTHONUNBUFFERED=1 \ PYTHONDONTWRITEBYTECODE=1 \ PYTHONHASHSEED=random \