8e commited on
Commit
52fc434
·
verified ·
1 Parent(s): cc0423e

Update Dockerfile

Browse files
Files changed (1) hide show
  1. Dockerfile +37 -9
Dockerfile CHANGED
@@ -1,16 +1,44 @@
1
- FROM alpine AS builder
2
- RUN apk add --no-cache nodejs npm git
3
 
4
- RUN npm install npm -g
5
 
6
- RUN adduser -D app
7
- USER app
8
- WORKDIR /home/app
9
 
10
- RUN git clone https://github.com/louislam/uptime-kuma.git -b master
11
- WORKDIR /home/app/uptime-kuma
12
- RUN npm run setup
13
 
 
 
14
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
15
  EXPOSE 3001
 
 
16
  CMD ["node", "server/server.js"]
 
1
+ # 前端构建阶段
2
+ FROM node:20-alpine as builder
3
 
4
+ # 设置工作目录
5
 
6
+ RUN git clone https://github.com/louislam/uptime-kuma.git /app
 
 
7
 
8
+ WORKDIR /app
 
 
9
 
10
+ # 复制 package.json 和 package-lock.json
11
+ COPY package*.json ./
12
 
13
+ # 安装项目依赖
14
+ RUN npm install --legacy-peer-deps && npm cache clean --force
15
+
16
+ # 复制前端代码
17
+ COPY . .
18
+
19
+ # 构建应用
20
+ RUN npm run build
21
+
22
+ # 清理不必要的文件和依赖
23
+ RUN npm prune --production
24
+
25
+ # 第二阶段:仅复制构建产物和运行时依赖
26
+ FROM node:20-alpine
27
+
28
+ # 设置工作目录
29
+ WORKDIR /app
30
+
31
+ # 从构建器阶段复制构建产物和必要的运行时文件
32
+ COPY --from=builder /app/dist ./dist
33
+ COPY --from=builder /app/server ./server
34
+ COPY --from=builder /app/node_modules ./node_modules
35
+ COPY --from=builder /app/package*.json ./
36
+ COPY --from=builder /app/src ./src
37
+ # 确保 db 目录也被复制,包括 knex_init_db 模块
38
+ COPY --from=builder /app/db ./db
39
+
40
+ # 暴露 3001 端口
41
  EXPOSE 3001
42
+
43
+ # 启动命令
44
  CMD ["node", "server/server.js"]