File size: 1,367 Bytes
3f0377e
 
 
 
 
 
 
85a83b0
3f0377e
 
 
2287bd8
3f0377e
 
 
 
 
 
 
 
 
 
 
 
 
 
2287bd8
 
 
3f0377e
 
 
 
053d3f0
 
 
 
 
 
 
 
3f0377e
 
 
2287bd8
 
509e602
49f42a7
2287bd8
 
85a83b0
3f0377e
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
FROM python:3.12.3-slim

ENV PIP_NO_CACHE_DIR=1 \
    PYTHONDONTWRITEBYTECODE=1 \
    PYTHONUNBUFFERED=1 \
    XDG_CACHE_HOME=/tmp/cache \
    MPLCONFIGDIR=/tmp/matplotlib \
    NUMBA_CACHE_DIR=/tmp/numba_cache

WORKDIR /app

# 安裝系統依賴(包含 Node.js)
COPY requirements.txt ./
RUN apt-get update \
    && apt-get install -y --no-install-recommends \
        build-essential \
        pkg-config \
        libfreetype6-dev \
        libpng-dev \
        libjpeg-dev \
        libopenblas-dev \
        liblapack-dev \
        libsndfile1 \
        ffmpeg \
        libasound2-dev \
        portaudio19-dev \
        curl \
    && curl -fsSL https://deb.nodesource.com/setup_20.x | bash - \
    && apt-get install -y nodejs \
    && pip install --no-cache-dir --prefer-binary -r requirements.txt \
    && apt-get clean \
    && rm -rf /var/lib/apt/lists/*

RUN mkdir -p ${XDG_CACHE_HOME}/fontconfig \
    ${MPLCONFIGDIR} \
    ${NUMBA_CACHE_DIR} \
    /tmp/voice_cache \
    && chmod -R 777 ${XDG_CACHE_HOME} \
    && chmod -R 777 ${MPLCONFIGDIR} \
    && chmod -R 777 ${NUMBA_CACHE_DIR} \
    && chmod -R 777 /tmp/voice_cache

COPY . .

# Build Next.js 前端
RUN cd bloom-ware-login \
    && npm install --legacy-peer-deps \
    && npm run build \
    && cd ..

ENV PORT=7860

CMD ["bash", "-lc", "uvicorn app:app --host 0.0.0.0 --port ${PORT:-7860}"]