From 18f77530ec1e13190a181f026dd40bf05f7d578e Mon Sep 17 00:00:00 2001 From: grabowski Date: Wed, 13 Aug 2025 11:50:03 +0700 Subject: [PATCH] Fix Docker container Python dependencies issue Dockerfile Fixes: - Copy Python packages to /home/appuser/.local instead of /root/.local - Create appuser home directory before copying packages - Update PATH to use /home/appuser/.local/bin - Set proper ownership of .local directory for appuser - Ensure appuser has access to installed Python packages Problem Solved: - Container was failing with 'ModuleNotFoundError: No module named requests' - appuser couldn't access packages installed in /root/.local - Python dependencies now properly accessible to non-root user Docker container should now start successfully with all dependencies --- Dockerfile | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/Dockerfile b/Dockerfile index e31c144..d498e29 100644 --- a/Dockerfile +++ b/Dockerfile @@ -22,26 +22,27 @@ FROM python:3.11-slim # Set working directory WORKDIR /app -# Install runtime dependencies +# Install runtime dependencies and create user RUN apt-get update && apt-get install -y \ wget \ curl \ && rm -rf /var/lib/apt/lists/* \ - && groupadd -r appuser && useradd -r -g appuser appuser + && groupadd -r appuser && useradd -r -g appuser appuser \ + && mkdir -p /home/appuser/.local # Copy Python packages from builder stage -COPY --from=builder /root/.local /root/.local +COPY --from=builder /root/.local /home/appuser/.local # Copy application code COPY . . # Create logs directory and set permissions -RUN mkdir -p logs && chown -R appuser:appuser /app +RUN mkdir -p logs && chown -R appuser:appuser /app /home/appuser/.local # Set environment variables ENV PYTHONUNBUFFERED=1 ENV TZ=Asia/Bangkok -ENV PATH=/root/.local/bin:$PATH +ENV PATH=/home/appuser/.local/bin:$PATH # Switch to non-root user USER appuser