k-l-lambda Claude commited on
Commit
5b189e3
·
1 Parent(s): 850daa9

Revert to building frontend from source with verbose output

Browse files

Add echo statements to see where build fails on HF Space.

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

Files changed (1) hide show
  1. Dockerfile +42 -49
Dockerfile CHANGED
@@ -3,71 +3,64 @@ FROM node:20-slim
3
  # Set noninteractive installation
4
  ENV DEBIAN_FRONTEND=noninteractive
5
 
6
- # Build timestamp to force cache invalidation: 2026-01-12T22:25
7
 
8
- # Install build dependencies including git-lfs
9
  RUN apt-get update && apt-get install -y \
10
  curl \
11
  git \
12
- git-lfs \
13
  && rm -rf /var/lib/apt/lists/*
14
 
15
- # Initialize git-lfs
16
- RUN git lfs install
17
-
18
  # Create app directory
19
  WORKDIR /app
20
 
21
- # Clone the repo with LFS files
22
- ARG REPO_URL=https://huggingface.co/spaces/k-l-lambda/trigo
23
- RUN git clone --depth 1 ${REPO_URL} /tmp/repo && \
24
- cd /tmp/repo && \
25
- git lfs pull
26
-
27
- # Copy files from cloned repo
28
- RUN mkdir -p app backend && \
29
- cp -r /tmp/repo/trigo-web/package*.json ./ && \
30
- cp -r /tmp/repo/trigo-web/app/package*.json ./app/ && \
31
- cp -r /tmp/repo/trigo-web/backend/package*.json ./backend/
32
-
33
- # Copy .env files
34
- RUN cp /tmp/repo/trigo-web/.env* ./ 2>/dev/null || true && \
35
- cp /tmp/repo/trigo-web/app/.env* ./app/ 2>/dev/null || true && \
36
- cp /tmp/repo/trigo-web/backend/.env* ./backend/ 2>/dev/null || true
37
 
38
  # Install build tools globally
39
  RUN npm install -g tsx jison typescript esbuild
40
 
41
- # Install production dependencies only at root level
42
- RUN npm install --omit=dev
43
-
44
- # Install app runtime dependencies (for onnxruntime-web)
45
- RUN cd app && npm install --omit=dev
46
-
47
- # Install backend dependencies
48
- RUN cd backend && npm install
 
 
 
 
 
 
 
 
 
 
49
 
50
- # Copy pre-built frontend dist folder (with LFS files properly resolved)
51
- RUN cp -r /tmp/repo/trigo-web/app/dist/ ./app/dist/
52
-
53
- # Copy public folder
54
- RUN cp -r /tmp/repo/trigo-web/public/ ./public/
55
-
56
- # Copy inc folder (shared types)
57
- RUN cp -r /tmp/repo/trigo-web/inc/ ./inc/
58
-
59
- # Copy backend source and build with esbuild
60
- RUN cp -r /tmp/repo/trigo-web/backend/src/ ./backend/src/ && \
61
- cp /tmp/repo/trigo-web/backend/tsconfig.json ./backend/
62
-
63
- RUN mkdir -p backend/dist/backend/src && \
64
- esbuild backend/src/server.ts --bundle --platform=node --target=node20 --format=esm --outfile=backend/dist/backend/src/server.js --external:express --external:socket.io --external:cors --external:dotenv --external:uuid
 
 
65
 
66
  # Copy the pre-built parser
67
- RUN cp /tmp/repo/trigo-web/public/lib/tgnParser.cjs ./public/lib/
68
-
69
- # Cleanup
70
- RUN rm -rf /tmp/repo
71
 
72
  # Set environment variables for Hugging Face Spaces
73
  ENV PORT=7860
 
3
  # Set noninteractive installation
4
  ENV DEBIAN_FRONTEND=noninteractive
5
 
6
+ # Build timestamp to force cache invalidation: 2026-01-12T22:35
7
 
8
+ # Install build dependencies
9
  RUN apt-get update && apt-get install -y \
10
  curl \
11
  git \
 
12
  && rm -rf /var/lib/apt/lists/*
13
 
 
 
 
14
  # Create app directory
15
  WORKDIR /app
16
 
17
+ # Copy package files first for better caching
18
+ COPY trigo-web/package*.json ./
19
+ COPY trigo-web/app/package*.json ./app/
20
+ COPY trigo-web/backend/package*.json ./backend/
 
 
 
 
 
 
 
 
 
 
 
 
21
 
22
  # Install build tools globally
23
  RUN npm install -g tsx jison typescript esbuild
24
 
25
+ # Install dependencies - show verbose output
26
+ RUN echo "=== Installing root dependencies ===" && \
27
+ npm install --omit=dev && \
28
+ echo "=== Installing app dependencies ===" && \
29
+ cd app && npm install && \
30
+ echo "=== Installing backend dependencies ===" && \
31
+ cd ../backend && npm install && \
32
+ echo "=== Done installing dependencies ==="
33
+
34
+ # Copy source files
35
+ COPY trigo-web/inc/ ./inc/
36
+ COPY trigo-web/public/ ./public/
37
+ COPY trigo-web/app/src/ ./app/src/
38
+ COPY trigo-web/app/index.html ./app/
39
+ COPY trigo-web/app/vite.config.ts ./app/
40
+ COPY trigo-web/app/tsconfig*.json ./app/
41
+ COPY trigo-web/backend/src/ ./backend/src/
42
+ COPY trigo-web/backend/tsconfig.json ./backend/
43
 
44
+ # Copy .env files
45
+ COPY trigo-web/.env* ./
46
+ COPY trigo-web/app/.env* ./app/
47
+ COPY trigo-web/backend/.env* ./backend/
48
+
49
+ # Build frontend - show all output
50
+ RUN echo "=== Starting Vite build ===" && \
51
+ cd app && \
52
+ NODE_OPTIONS="--max-old-space-size=4096" npm run build:prod && \
53
+ echo "=== Vite build completed ===" && \
54
+ ls -la dist/
55
+
56
+ # Build backend
57
+ RUN echo "=== Building backend ===" && \
58
+ mkdir -p backend/dist/backend/src && \
59
+ esbuild backend/src/server.ts --bundle --platform=node --target=node20 --format=esm --outfile=backend/dist/backend/src/server.js --external:express --external:socket.io --external:cors --external:dotenv --external:uuid && \
60
+ echo "=== Backend build completed ==="
61
 
62
  # Copy the pre-built parser
63
+ COPY trigo-web/public/lib/tgnParser.cjs ./public/lib/
 
 
 
64
 
65
  # Set environment variables for Hugging Face Spaces
66
  ENV PORT=7860