Spaces:
Paused
Paused
Fix: Add prisma client and node_modules to production image
Browse files- Dockerfile +19 -10
Dockerfile
CHANGED
|
@@ -9,31 +9,40 @@ 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 |
-
#
|
| 13 |
-
|
|
|
|
|
|
|
|
|
|
| 14 |
RUN npm install -D tsx typescript @types/node @types/express @types/ws esbuild
|
| 15 |
|
|
|
|
|
|
|
|
|
|
| 16 |
# Copy source code
|
| 17 |
COPY . .
|
| 18 |
|
| 19 |
# Build packages
|
| 20 |
-
RUN cd packages/domain-types && npm run build
|
| 21 |
-
RUN cd packages/mcp-types && npm run build
|
| 22 |
|
| 23 |
-
#
|
| 24 |
RUN cd apps/backend && npm run build-fixed
|
| 25 |
|
| 26 |
# Final stage
|
| 27 |
FROM node:20-alpine
|
| 28 |
-
WORKDIR /app
|
| 29 |
|
| 30 |
-
# Copy
|
| 31 |
-
COPY --from=builder /app/apps/backend/dist ./dist
|
| 32 |
-
COPY --from=builder /app/apps/backend/package.json ./
|
|
|
|
|
|
|
| 33 |
|
| 34 |
# Environment configuration
|
| 35 |
ENV NODE_ENV=production
|
| 36 |
ENV PORT=7860
|
| 37 |
|
|
|
|
| 38 |
EXPOSE 7860
|
| 39 |
-
CMD ["node", "dist/index.js"]
|
|
|
|
| 9 |
COPY packages/domain-types/package*.json ./packages/domain-types/
|
| 10 |
COPY packages/mcp-types/package*.json ./packages/mcp-types/
|
| 11 |
|
| 12 |
+
# Copy prisma schema for generation
|
| 13 |
+
COPY prisma ./prisma/
|
| 14 |
+
|
| 15 |
+
# Install all dependencies (including prisma)
|
| 16 |
+
RUN npm ci
|
| 17 |
RUN npm install -D tsx typescript @types/node @types/express @types/ws esbuild
|
| 18 |
|
| 19 |
+
# Generate Prisma client
|
| 20 |
+
RUN npx prisma generate
|
| 21 |
+
|
| 22 |
# Copy source code
|
| 23 |
COPY . .
|
| 24 |
|
| 25 |
# Build packages
|
| 26 |
+
RUN cd packages/domain-types && npm run build || true
|
| 27 |
+
RUN cd packages/mcp-types && npm run build || true
|
| 28 |
|
| 29 |
+
# Build backend with proper externalization
|
| 30 |
RUN cd apps/backend && npm run build-fixed
|
| 31 |
|
| 32 |
# Final stage
|
| 33 |
FROM node:20-alpine
|
| 34 |
+
WORKDIR /app
|
| 35 |
|
| 36 |
+
# Copy built files and node_modules
|
| 37 |
+
COPY --from=builder /app/apps/backend/dist ./apps/backend/dist
|
| 38 |
+
COPY --from=builder /app/apps/backend/package.json ./apps/backend/
|
| 39 |
+
COPY --from=builder /app/node_modules ./node_modules
|
| 40 |
+
COPY --from=builder /app/package.json ./
|
| 41 |
|
| 42 |
# Environment configuration
|
| 43 |
ENV NODE_ENV=production
|
| 44 |
ENV PORT=7860
|
| 45 |
|
| 46 |
+
WORKDIR /app/apps/backend
|
| 47 |
EXPOSE 7860
|
| 48 |
+
CMD ["node", "dist/index.js"]
|