| FROM pytorch/pytorch:2.0.1-cuda11.7-cudnn8-runtime |
|
|
| |
| ENV DEBIAN_FRONTEND=noninteractive |
| ENV PYTHONUNBUFFERED=1 |
| ENV HF_HOME=/app/.cache/huggingface |
| ENV TRANSFORMERS_CACHE=/app/.cache/huggingface/transformers |
| ENV PYTORCH_CUDA_ALLOC_CONF=max_split_size_mb:128 |
|
|
| |
| RUN mkdir -p /app/.cache/huggingface/transformers && \ |
| chmod -R 777 /app |
|
|
| |
| RUN apt-get update && apt-get install -y --no-install-recommends \ |
| build-essential \ |
| git \ |
| curl \ |
| ca-certificates \ |
| python3-pip \ |
| python3-dev \ |
| && rm -rf /var/lib/apt/lists/* |
|
|
| |
| WORKDIR /app |
|
|
| |
| COPY requirements.txt . |
| RUN pip3 install --no-cache-dir --upgrade pip && \ |
| pip3 install --no-cache-dir -r requirements.txt |
|
|
| |
| RUN pip3 install --no-cache-dir \ |
| transformers==4.37.2 \ |
| timm==0.9.11 \ |
| accelerate==0.30.0 \ |
| safetensors==0.4.1 \ |
| einops |
|
|
| |
| COPY app.py /app/app.py |
|
|
| |
| RUN echo ' |
| echo "Starting diagnostics..." \n\ |
| echo "===== System Information =====" \n\ |
| python3 -c "import sys; print(f\"Python version: {sys.version}\")" \n\ |
| python3 -c "import torch; print(f\"PyTorch version: {torch.__version__}\")" \n\ |
| echo "\n===== CUDA Information =====" \n\ |
| python3 -c "import torch; print(f\"CUDA available: {torch.cuda.is_available()}\")" \n\ |
| if [ $(python3 -c "import torch; print(torch.cuda.is_available())") = "True" ]; then \n\ |
| python3 -c "import torch; print(f\"CUDA version: {torch.version.cuda}\")" \n\ |
| python3 -c "import torch; print(f\"GPU count: {torch.cuda.device_count()}\")" \n\ |
| python3 -c "import torch; for i in range(torch.cuda.device_count()): print(f\"GPU {i}: {torch.cuda.get_device_name(i)}\")" \n\ |
| python3 -c "import torch; print(f\"Total GPU memory: {torch.cuda.get_device_properties(0).total_memory / 1024 / 1024 / 1024:.2f} GB\")" \n\ |
| fi \n\ |
| echo "\n===== Package Information =====" \n\ |
| pip3 list | grep -E "transformers|einops|torch|timm|accelerate|safetensors" \n\ |
| echo "\n===== NVIDIA System Information =====" \n\ |
| if command -v nvidia-smi &> /dev/null; then \n\ |
| nvidia-smi \n\ |
| else \n\ |
| echo "nvidia-smi not found" \n\ |
| fi \n\ |
| echo "\n===== Starting Application =====" \n\ |
| exec "$@"' > /entrypoint.sh && \ |
| chmod +x /entrypoint.sh |
|
|
| |
| EXPOSE 7860 |
|
|
| |
| ENTRYPOINT ["/entrypoint.sh"] |
|
|
| |
| CMD ["python3", "app.py"] |