# Dockerfile for pre-built frontend # Use this when frontend/dist is already built on the host # Avoids npm issues with corporate proxy FROM python:3.14-slim AS base WORKDIR /app # Install system dependencies RUN apt-get update \ && apt-get install -y --no-install-recommends \ build-essential \ default-libmysqlclient-dev \ pkg-config \ curl \ && rm -rf /var/lib/apt/lists/* # Install Python dependencies COPY requirements.txt ./ RUN pip install --no-cache-dir -r requirements.txt \ && pip install --no-cache-dir gunicorn gevent # Copy application code COPY shopdb/ ./shopdb/ COPY plugins/ ./plugins/ COPY migrations/ ./migrations/ COPY scripts/ ./scripts/ COPY wsgi.py ./ # Copy pre-built frontend COPY frontend/dist ./frontend/dist # Make scripts executable RUN chmod +x /app/scripts/docker-entrypoint.sh /app/scripts/bootstrap-plugins.sh # Create instance directory RUN mkdir -p /app/instance # Expose port EXPOSE 5001 # Set environment ENV PYTHONUNBUFFERED=1 ENV FLASK_APP=shopdb # Entrypoint runs migrations and starts gunicorn ENTRYPOINT ["/app/scripts/docker-entrypoint.sh"]