# 基於支持 CUDA 12.1 的官方 NVIDIA Docker 映像 FROM nvidia/cuda:12.1.1-cudnn8-runtime-ubuntu22.04 # 設置 DEBIAN_FRONTEND 以跳過交互式的 tzdata 設定 ENV DEBIAN_FRONTEND=noninteractive ENV TZ=Europe/London # 安裝系統依賴和設置時區 RUN apt-get update && apt-get install -y \ python3 \ python3-pip \ python3-distutils \ ffmpeg \ tzdata \ && ln -fs /usr/share/zoneinfo/$TZ /etc/localtime \ && dpkg-reconfigure --frontend noninteractive tzdata \ && rm -rf /var/lib/apt/lists/* # 創建並切換到新用戶 RUN useradd -m -u 1000 user USER user ENV PATH="/home/user/.local/bin:$PATH" # 設置工作目錄 WORKDIR /app # 更新 pip 和安裝构建工具 RUN pip3 install --no-cache-dir --upgrade pip setuptools wheel # 安裝 PyTorch 2.1.2 並支援 CUDA 12.1 RUN pip3 install --no-cache-dir torch==2.1.2+cu121 torchvision==0.16.2+cu121 torchaudio==2.1.2 --extra-index-url https://download.pytorch.org/whl/cu121 # 複製 requirements.txt 並安裝 Python 依賴 COPY --chown=user requirements.txt . RUN pip3 install --no-cache-dir -r requirements.txt # 下載 spaCy 中文模型 RUN python3 -m spacy download zh_core_web_md # 複製應用程式檔案 COPY --chown=user . /app # 設置環境變量 ENV PORT=7860 # 暴露應用運行的端口 EXPOSE 7860 # 啟動 Flask 應用 CMD ["python3", "app.py"]