Spaces:
Build error
Build error
| # Sử dụng Node.js image làm căn bản | |
| FROM node:18-bookworm-slim | |
| # Bước 1: Chạy dưới quyền root để cài đặt các package hệ thống | |
| USER root | |
| RUN apt-get update && apt-get install -y --no-install-recommends \ | |
| gcc \ | |
| g++ \ | |
| openjdk-17-jdk-headless \ | |
| python3 \ | |
| python3-pip \ | |
| python3-is-python3 \ | |
| libgl1 \ | |
| libglib2.0-0 \ | |
| && rm -rf /var/lib/apt/lists/* | |
| # Bước 2: Cài đặt các thư viện Python (Chạy dưới quyền root) | |
| RUN pip3 install --no-cache-dir --break-system-packages \ | |
| numpy \ | |
| matplotlib \ | |
| sympy \ | |
| opencv-python-headless | |
| # Bước 3: Thiết lập biến môi trường | |
| # Hugging Face Spaces bắt buộc dùng UID 1000. Image node:18 đã có sẵn user 'node' với UID 1000. | |
| ENV HOME=/home/node \ | |
| PATH=/home/node/.local/bin:$PATH \ | |
| PORT=7860 | |
| # Bước 4: Cấu hình thư mục làm việc | |
| WORKDIR $HOME/app | |
| # Bước 5: Copy file cấu hình Node.js | |
| COPY --chown=node:node package*.json ./ | |
| # Bước 6: Chuyển sang quyền user node trước khi cài đặt npm và chạy app | |
| USER node | |
| # Cài đặt dependencies Node.js | |
| RUN npm install | |
| # Bước 7: Copy toàn bộ mã nguồn | |
| COPY --chown=node:node . . | |
| # Bước 8: Chuẩn bị thư mục temp cho việc thực thi code | |
| RUN mkdir -p temp && chmod 777 temp | |
| # Cấu hình cổng mạng | |
| EXPOSE 7860 | |
| # Lệnh khởi chạy | |
| CMD ["node", "server.js"] |