Kraft102 Claude Opus 4.5 commited on
Commit
12a1c6e
·
1 Parent(s): 9b8e8c5

fix: update root Dockerfile for HF Spaces deployment

Browse files

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

Files changed (1) hide show
  1. Dockerfile +26 -19
Dockerfile CHANGED
@@ -1,42 +1,49 @@
1
- # WidgeTDC Backend - Fixed for Hugging Face Spaces
2
  FROM node:20-alpine AS builder
3
 
4
  WORKDIR /app
5
 
6
- # Copy package files first for optimal caching
7
  COPY package*.json ./
 
 
 
 
 
 
 
8
  COPY apps/backend/package*.json ./apps/backend/
9
- COPY packages/domain-types/package*.json ./packages/domain-types/
10
- COPY packages/mcp-types/package*.json ./packages/mcp-types/
11
 
12
- # Install all dependencies
13
- RUN npm ci --production
14
- RUN npm install -D tsx typescript @types/node @types/express @types/ws esbuild
15
 
16
- # Copy source code
17
- COPY . .
18
 
19
- # Copy Prisma schema
20
- COPY apps/backend/prisma ./prisma
21
- # Build packages
 
 
22
  RUN cd packages/domain-types && npm run build
23
  RUN cd packages/mcp-types && npm run build
24
 
25
- # Fix: Build backend with proper externalization
26
  RUN cd apps/backend && npm run build-fixed
27
 
28
- # Final stage
29
  FROM node:20-alpine
30
- WORKDIR /app/apps/backend
31
 
32
- # Copy only necessary files
33
  COPY --from=builder /app/apps/backend/dist ./dist
34
  COPY --from=builder /app/apps/backend/package.json ./
35
- COPY --from=builder /app/prisma ./prisma
36
 
37
- # Environment configuration
38
  ENV NODE_ENV=production
39
  ENV PORT=7860
40
 
41
  EXPOSE 7860
42
- CMD ["node", "dist/index.js"]
 
1
+ # WidgeTDC Backend - Hugging Face Spaces
2
  FROM node:20-alpine AS builder
3
 
4
  WORKDIR /app
5
 
6
+ # Copy root workspace config
7
  COPY package*.json ./
8
+ COPY tsconfig.base.json ./
9
+
10
+ # Copy workspace packages (needed for workspace:* resolution)
11
+ COPY packages/domain-types ./packages/domain-types/
12
+ COPY packages/mcp-types ./packages/mcp-types/
13
+
14
+ # Copy backend package.json and prisma
15
  COPY apps/backend/package*.json ./apps/backend/
16
+ COPY apps/backend/prisma ./apps/backend/prisma/
 
17
 
18
+ # Install dependencies with workspace resolution
19
+ RUN npm ci
 
20
 
21
+ # Generate Prisma client
22
+ RUN cd apps/backend && npx prisma generate
23
 
24
+ # Copy backend source code and tsconfig
25
+ COPY apps/backend/src ./apps/backend/src/
26
+ COPY apps/backend/tsconfig.json ./apps/backend/
27
+
28
+ # Build shared packages first
29
  RUN cd packages/domain-types && npm run build
30
  RUN cd packages/mcp-types && npm run build
31
 
32
+ # Build backend
33
  RUN cd apps/backend && npm run build-fixed
34
 
35
+ # Final stage - minimal production image
36
  FROM node:20-alpine
37
+ WORKDIR /app
38
 
39
+ # Copy built artifacts
40
  COPY --from=builder /app/apps/backend/dist ./dist
41
  COPY --from=builder /app/apps/backend/package.json ./
42
+ COPY --from=builder /app/node_modules ./node_modules
43
 
44
+ # Environment
45
  ENV NODE_ENV=production
46
  ENV PORT=7860
47
 
48
  EXPOSE 7860
49
+ CMD ["node", "dist/index.js"]