leowuming commited on
Commit
7acf735
·
verified ·
1 Parent(s): c02035a

Create Dockerfile

Browse files
Files changed (1) hide show
  1. Dockerfile +45 -0
Dockerfile ADDED
@@ -0,0 +1,45 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Dockerfile
2
+
3
+ # --- STAGE 1: Base for building ---
4
+ FROM node:18-alpine AS builder
5
+ WORKDIR /app
6
+
7
+ # 安装 pnpm
8
+ RUN npm install -g pnpm
9
+
10
+ # 复制源代码 (假设 Dockerfile 在项目根目录)
11
+ COPY . .
12
+
13
+ # 安装所有依赖并构建前后端
14
+ RUN pnpm install --frozen-lockfile
15
+ RUN pnpm build
16
+
17
+ # --- STAGE 2: Final Production Image ---
18
+ FROM node:18-alpine AS production
19
+
20
+ WORKDIR /app
21
+
22
+ # 安装 pnpm
23
+ RUN npm install -g pnpm
24
+
25
+ # 从 builder 阶段复制生产环境所需的 node_modules
26
+ COPY --from=builder /app/node_modules ./node_modules
27
+ COPY --from=builder /app/server/package.json ./server/package.json
28
+
29
+ # 从 builder 阶段复制构建好的后端
30
+ COPY --from=builder /app/server ./server
31
+
32
+ # 从 builder 阶段复制构建好的前端静态文件
33
+ COPY --from=builder /app/collector/dist ./server/public
34
+
35
+ # 设置环境变量为生产模式
36
+ ENV NODE_ENV=production
37
+ # **关键**: 告诉 AnythingLLM 将所有数据存储到 Hugging Face 的持久化存储目录 /data
38
+ # 这样即使 Space 重启,数据也不会丢失
39
+ ENV STORAGE_LOCATION=/data/storage
40
+
41
+ # 暴露应用端口
42
+ EXPOSE 3001
43
+
44
+ # 启动应用的命令
45
+ CMD ["pnpm", "--filter", "server", "start"]