Spaces:
Running
Running
| # syntax=docker/dockerfile:1 | |
| FROM python:3.10-slim | |
| ENV PYTHONDONTWRITEBYTECODE=1 \ | |
| PYTHONUNBUFFERED=1 \ | |
| PIP_NO_CACHE_DIR=1 \ | |
| GRADIO_SERVER_PORT=7860 \ | |
| GRADIO_SERVER_NAME=0.0.0.0 \ | |
| HOME=/home/user | |
| # 建立非 root 使用者(與 HF Spaces 一致) | |
| RUN useradd -m -u 1000 user | |
| # 基本系統套件與科學計算依賴 | |
| RUN apt-get update && apt-get install -y --no-install-recommends \ | |
| build-essential \ | |
| libhdf5-dev \ | |
| libnetcdf-dev \ | |
| libopenblas-dev \ | |
| liblapack-dev \ | |
| git \ | |
| && rm -rf /var/lib/apt/lists/* | |
| # 切換到使用者目錄 | |
| WORKDIR $HOME/app | |
| # 只複製 requirements.txt 並安裝 | |
| COPY --chown=user:user requirements.txt . | |
| RUN pip install --upgrade pip && pip install -r requirements.txt | |
| # 切換到非 root 使用者 | |
| USER user | |
| EXPOSE 7860 | |
| # 預設執行命令(可被 docker run 覆蓋) | |
| CMD ["python", "app.py"] | |