-
Notifications
You must be signed in to change notification settings - Fork 168
Expand file tree
/
Copy pathDockerfile_platform
More file actions
41 lines (30 loc) · 1.19 KB
/
Dockerfile_platform
File metadata and controls
41 lines (30 loc) · 1.19 KB
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
# 构建阶段
ARG BASE_IMAGE=dify-chat-base
FROM ${BASE_IMAGE} AS builder
WORKDIR /app
# 复制 platform 源码
COPY packages/platform/ ./packages/platform/
# 生成 Prisma 客户端
RUN pnpm --filter dify-chat-platform exec prisma generate
# 构建 platform
RUN pnpm --filter dify-chat-platform build
FROM node:22.21.1-alpine AS runner
WORKDIR /app
# 复制整个 standalone 目录(包含所有必需的文件和依赖)
COPY --from=builder /app/packages/platform/.next/standalone ./
COPY --from=builder /app/packages/platform/.next/static ./packages/platform/.next/static
COPY --from=builder /app/packages/platform/public ./packages/platform/public
# 复制 Prisma 生成的客户端文件(必需)
COPY --from=builder /app/packages/platform/prisma ./packages/platform/prisma
# Prisma 配置文件,执行 Prisma CLI 时必需
COPY --from=builder /app/packages/platform/prisma.config.ts ./packages/platform/prisma.config.ts
COPY packages/platform/docker/entrypoint.sh /docker-entrypoint.sh
RUN chmod +x /docker-entrypoint.sh
ENV NODE_ENV=production
ENV PORT=5300
EXPOSE 5300
WORKDIR /app/packages/platform
# 入口脚本
ENTRYPOINT ["/docker-entrypoint.sh"]
# 启动
CMD ["node", "server.js"]