File size: 1,416 Bytes
d0f8495
5358c7e
bc6743c
5358c7e
 
 
 
bc6743c
 
5358c7e
bc6743c
 
f3f9912
f3ef694
bc6743c
 
 
ff0e4e3
f3f9912
 
 
 
 
 
ff0e4e3
 
 
 
 
d0f8495
f3f9912
d0f8495
bc6743c
f3f9912
ff0e4e3
5358c7e
ff0e4e3
 
5358c7e
 
 
bc6743c
ff0e4e3
 
bc6743c
5358c7e
d0f8495
bc6743c
ff0e4e3
bc6743c
 
5358c7e
 
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
# 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"]