# QEMU Web Interface Dockerfile with Unlimited Storage
FROM python:3.12-slim

# Install system dependencies with unlimited storage configuration
RUN apt-get update && \
    apt-get install -y qemu-system-x86 qemu-utils libvirt-daemon-system libvirt-clients git curl && \
    apt-get clean && rm -rf /var/lib/apt/lists/*

# Set workdir
WORKDIR /app

# Copy application code
COPY . /app

# Install Python dependencies including HuggingFace datasets
RUN pip install --no-cache-dir -r requirements.txt && \
    pip install --no-cache-dir datasets huggingface_hub

# Configure unlimited storage settings
ENV STORAGE_LIMIT=unlimited
ENV GPU_MEMORY_LIMIT=unlimited
ENV CPU_MEMORY_LIMIT=unlimited
ENV DISK_SPACE_LIMIT=unlimited
ENV HF_DATASETS_CACHE=/tmp/hf_cache

# Make the entire /app directory fully writeable for all users
RUN chmod -R 777 /app

# Create unlimited storage directories
RUN mkdir -p /tmp/hf_cache && chmod -R 777 /tmp/hf_cache

# Ensure the app runs as the same user as the Space UI
RUN useradd -m -u 1000 user
USER user

# Set environment variables for unlimited resources
ENV PYTHONUNBUFFERED=1
ENV HF_HOME=/tmp/hf_cache
ENV TRANSFORMERS_CACHE=/tmp/hf_cache

# Expose web interface port (adjust as needed)
EXPOSE 8080

# Default command to run the QEMU web interface
CMD ["python", "qemu/web_interface.py"]