ChoruYt commited on
Commit
f46ca78
·
verified ·
1 Parent(s): 239ce1c

Update Dockerfile

Browse files
Files changed (1) hide show
  1. Dockerfile +22 -12
Dockerfile CHANGED
@@ -1,23 +1,33 @@
1
  FROM node:20-slim
2
 
3
- # Install system deps
4
  RUN apt-get update && apt-get install -y \
5
  curl \
6
- procps \
7
- zstd \
8
- && rm -rf /var/lib/apt/lists/*
9
 
10
- # Set working directory
11
  WORKDIR /app
12
 
13
- # Copy project files
14
- COPY . .
15
 
16
- # Install dependencies (if package.json exists)
17
- RUN npm install --legacy-peer-deps || true
 
 
 
 
 
 
 
 
 
 
18
 
19
- # Expose port
20
  EXPOSE 7860
21
 
22
- # Auto run index.js
23
- CMD ["node", "index.js"]
 
 
 
 
1
  FROM node:20-slim
2
 
3
+ # Install curl for health checks
4
  RUN apt-get update && apt-get install -y \
5
  curl \
6
+ && rm -rf /var/lib/apt/lists/* \
7
+ && apt-get clean
 
8
 
 
9
  WORKDIR /app
10
 
11
+ # Copy package files
12
+ COPY package*.json ./
13
 
14
+ # Install Node dependencies
15
+ RUN npm ci --only=production && npm cache clean --force
16
+
17
+ # Copy source
18
+ COPY cpu.js .
19
+
20
+ # Create non-root user
21
+ RUN addgroup --gid 1001 --system node && \
22
+ adduser --uid 1001 --system --gid 1001 node && \
23
+ chown -R node:node /app
24
+
25
+ USER node
26
 
 
27
  EXPOSE 7860
28
 
29
+ # Health check
30
+ HEALTHCHECK --interval=30s --timeout=10s --start-period=10s --retries=3 \
31
+ CMD node -e "require('http').get('http://localhost:7860/health', (res) => { process.exit(res.statusCode === 200 ? 0 : 1) }).on('error', () => process.exit(1))"
32
+
33
+ CMD ["node", "cpu.js"]