MuhammadQasimShabbir3's picture
fixed the model path for inference.
83180d6
Raw History Blame Contribute Delete
1.73 kB
# Multi-stage build for optimal image size
# Stage 1: Builder
FROM nvidia/cuda:11.8.0-runtime-ubuntu22.04 as builder
WORKDIR /build
# Install system dependencies
RUN apt-get update && apt-get install -y --no-install-recommends \
python3.10 \
python3-pip \
python3.10-dev \
git \
build-essential \
&& rm -rf /var/lib/apt/lists/*
# Copy requirements
COPY requirements.txt .
# Create wheels for all dependencies
RUN pip3 install --no-cache-dir --user --upgrade pip setuptools wheel && \
pip3 install --no-cache-dir --user -r requirements.txt
# Stage 2: Runtime
FROM nvidia/cuda:11.8.0-runtime-ubuntu22.04
WORKDIR /app
# Install minimal runtime dependencies
RUN apt-get update && apt-get install -y --no-install-recommends \
python3.10 \
python3-pip \
libsm6 \
libxext6 \
libxrender-dev \
libgomp1 \
&& rm -rf /var/lib/apt/lists/*
# Copy Python packages from builder
COPY --from=builder /root/.local /root/.local
# Set Python path
ENV PATH=/root/.local/bin:$PATH \
PYTHONUNBUFFERED=1 \
PYTHONDONTWRITEBYTECODE=1 \
TORCH_HOME=/app/.cache/torch
# Create cache directory
RUN mkdir -p /app/.cache/torch
# Copy application files
COPY app.py .
COPY config.json .
COPY model_weights/ ./model_weights/
ENV GENERATOR_CHECKPOINT=/app/model_weights/generator_best.pth
# Health check
HEALTHCHECK --interval=30s --timeout=10s --start-period=40s --retries=3 \
CMD python3 -c "import torch; print('OK')" || exit 1
# Expose port
EXPOSE 7860
# Set up non-root user (optional, for security)
RUN useradd -m -u 1000 appuser && \
chown -R appuser:appuser /app
USER appuser
# Run app
CMD ["python3", "app.py", "--server_name", "0.0.0.0", "--server_port", "7860"]