From 0eb0644d8c1cf2fdda59243cd7efbf29733e2e58 Mon Sep 17 00:00:00 2001 From: "Ehsan.Asadi" Date: Wed, 31 Dec 2025 05:56:12 +0330 Subject: [PATCH] [DEPLOYMENT-001] Fix ModuleNotFoundError and rxconfig.py not found in container (fix) | ApprovalToken: AT-202512310556 --- docker/Dockerfile | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/docker/Dockerfile b/docker/Dockerfile index d5ed89a..5fb77b6 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -130,9 +130,9 @@ WORKDIR /app COPY --from=builder /usr/local/lib/python3.11/site-packages /usr/local/lib/python3.11/site-packages COPY --from=builder /usr/local/bin /usr/local/bin -# Copy application code to /app/peikarband/ to preserve package structure +# Copy application code directly to /app/ to preserve package structure # This ensures peikarband.peikarband module can be found by Reflex -COPY --from=builder --chown=peikarband:peikarband /build/peikarband /app/peikarband +COPY --from=builder --chown=peikarband:peikarband /build/peikarband /app # Create necessary directories RUN mkdir -p /app/data /app/logs /app/uploaded_files && \ @@ -143,15 +143,15 @@ RUN chmod -R 755 /app && \ chmod -R 777 /app/data /app/logs /app/uploaded_files # Environment variables -# PYTHONPATH=/app allows importing peikarband package from /app/peikarband -# PYTHONPATH also includes /app/peikarband for src.* imports +# PYTHONPATH=/app allows importing peikarband package from /app/peikarband/ +# and src.* imports from /app/src/ # Note: Python adds current directory (.) to sys.path automatically, but PYTHONPATH entries come first # REFLEX_DIR points to the directory containing rxconfig.py ENV PYTHONUNBUFFERED=1 \ PYTHONDONTWRITEBYTECODE=1 \ - PYTHONPATH=/app:/app/peikarband \ + PYTHONPATH=/app \ PATH="/app/.venv/bin:$PATH" \ - REFLEX_DIR=/app/peikarband \ + REFLEX_DIR=/app \ NODE_ENV=production # Health check @@ -168,9 +168,8 @@ EXPOSE 3000 8000 ENTRYPOINT ["/usr/bin/tini", "--"] # Start application -# We need to run from /app/peikarband so Reflex can find rxconfig.py +# Reflex will run from /app where rxconfig.py is located # PYTHONPATH=/app allows Python to find peikarband package for imports -WORKDIR /app/peikarband CMD ["reflex", "run", "--env", "prod", "--loglevel", "info", "--frontend-port", "3000", "--backend-port", "8000"] # ============================================