FYP_ASR_Service / Dockerfile
HK0712's picture
updated building setting (may error)
daa0137
# 1. 選擇一個包含 Python 的官方 Linux 映像
FROM python:3.10-slim
ENV HF_HOME=/tmp/huggingface
ENV HF_DATASETS_CACHE=/tmp/huggingface/datasets
# 為 MeCab 設定正確的設定檔路徑,解決 "no such file or directory" 錯誤
ENV MECABRC=/etc/mecabrc
# 2. 設定容器內的工作目錄
WORKDIR /app
ENV NUMBA_CACHE_DIR=/tmp
# 3. 安裝系統級依賴 (最關鍵的一步:安裝 espeak-ng、git 和其他工具)
# -y 自動回答 'yes'
# --no-install-recommends 避免安裝不必要的建議套件,保持映像檔小巧
RUN apt-get update && apt-get install -y --no-install-recommends \
build-essential \
cmake \
mecab \
libmecab-dev \
mecab-ipadic-utf8 \
espeak-ng \
libsndfile1 \
ffmpeg \
wget \
git && \
rm -rf /var/lib/apt/lists/*
# 4. 複製 requirements.txt 檔案到容器中並安裝 Python 套件
COPY requirements.txt .
RUN pip install --upgrade pip
RUN pip install --no-cache-dir -r requirements.txt
RUN python -c "import pyopenjtalk; pyopenjtalk.g2p('test')"
# 5. 將專案中的所有其他檔案複製到容器中
COPY . .
# 這行是可選的,它設定了當容器直接執行時的預設命令
# CMD ["python", "your_script.py"]
CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "8000"]