File size: 936 Bytes
b883764
8f5d9e5
57da3ff
fb43d41
 
 
 
 
 
 
 
 
b883764
 
 
 
fb43d41
57da3ff
8f5d9e5
57da3ff
fb43d41
b883764
 
fb43d41
755f171
fb43d41
b883764
57da3ff
fb43d41
8f5d9e5
 
57da3ff
fb43d41
8f5d9e5
57da3ff
 
 
 
 
 
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
# Use the official node image (already contains 'node' user with UID 1000)
FROM node:20

# 1. Install system dependencies as ROOT
RUN apt-get update && apt-get install -y --no-install-recommends \
    python3 \
    make \
    g++ \
    libvips-dev \
    ca-certificates \
    && rm -rf /var/lib/apt/lists/*

# 2. Use the PRE-EXISTING 'node' user (UID 1000)
USER node
ENV HOME=/home/node \
    PATH=/home/node/.local/bin:$PATH \
    TF_CPP_MIN_LOG_LEVEL=2

WORKDIR $HOME/app

# 3. Handle dependencies
# Note: --chown=node:node is critical for permissions
COPY --chown=node:node package*.json ./
RUN npm install --legacy-peer-deps --include=optional

# 4. Copy and Build
COPY --chown=node:node . .

# Increase memory for the build process
ENV NODE_OPTIONS="--max-old-space-size=4096"
RUN CI=false npm run build

# Final setup
RUN mkdir -p server/uploads

ENV NODE_ENV=production
ENV PORT=7860
EXPOSE 7860

CMD ["node", "server/index.js"]