| FROM node:20-alpine as build-stage | |
| WORKDIR /app | |
| COPY package*.json ./ | |
| # 安裝專案所有依賴 | |
| RUN npm install | |
| # 複製其餘的所有專案原始碼 (包括 src/, public/, configs 等) | |
| COPY . . | |
| # 執行生產環境建置命令 (這會產生一個 dist/ 目錄) | |
| RUN npm run build | |
| # 使用標準的 alpine nginx 映像檔 | |
| FROM nginx:stable-alpine as production-stage | |
| # 1. 複製階段 1 中編譯好的靜態檔案 到 Nginx 的 HTML 目錄 | |
| # Vite 預設編譯輸出的目錄是 dist/ | |
| COPY --from=build-stage /app/dist /usr/share/nginx/html | |
| # 2. 複製我們自定義的 nginx.conf 設定檔,替換 Nginx 預設設定 | |
| COPY nginx.conf /etc/nginx/conf.d/default.conf | |
| # 3. 關鍵:對外開放 7860 端口 (Hugging Face Spaces 的要求) | |
| EXPOSE 7860 | |
| # 4. 啟動 Nginx (前台運行) | |
| CMD ["nginx", "-g", "daemon off;"] |