FROM node:20-alpine AS frontend-builder WORKDIR /frontend COPY chatbot/package*.json ./ RUN npm ci COPY chatbot/ ./ ARG VITE_API_BASE_URL="" ENV VITE_API_BASE_URL=$VITE_API_BASE_URL RUN npm run build FROM python:3.10-slim WORKDIR /app RUN apt-get update && apt-get install -y --no-install-recommends \ gcc \ g++ \ && rm -rf /var/lib/apt/lists/* COPY requirements.txt . RUN pip install --no-cache-dir -r requirements.txt COPY backend/ ./backend/ COPY data/ ./data/ COPY --from=frontend-builder /frontend/dist ./frontend/dist RUN useradd -m appuser && chown -R appuser /app USER appuser ENV PYTHONUNBUFFERED=1 ENV FLASK_ENV=production ENV PORT=7860 WORKDIR /app/backend EXPOSE 7860 CMD ["sh", "-c", "PORT=7860 python main.py"]