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

Add verbose step-by-step debug output to Dockerfile

Browse files

Each build step now prints output to help identify where the build fails.

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

Files changed (1) hide show
  1. Dockerfile +55 -33
Dockerfile CHANGED
@@ -3,37 +3,51 @@ FROM node:20-slim
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/
@@ -41,34 +55,42 @@ 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
67
  ENV HOST=0.0.0.0
68
  ENV NODE_ENV=production
69
 
70
- # Expose port 7860 (required by Hugging Face Spaces)
71
  EXPOSE 7860
72
 
73
- # Start backend server (which will also serve frontend static files)
74
  CMD ["npm", "run", "start:prod"]
 
3
  # Set noninteractive installation
4
  ENV DEBIAN_FRONTEND=noninteractive
5
 
6
+ # Build timestamp: 2026-01-12T22:45
7
 
8
  # Install build dependencies
9
+ RUN apt-get update && apt-get install -y curl git && rm -rf /var/lib/apt/lists/*
 
 
 
10
 
 
11
  WORKDIR /app
12
 
13
+ # Create directories
14
+ RUN mkdir -p app backend
 
 
15
 
16
+ # Copy root package.json
17
+ COPY trigo-web/package.json ./package.json
18
+ COPY trigo-web/package-lock.json ./package-lock.json
19
+
20
+ # Check what we have so far
21
+ RUN echo "=== Step 1: Root package.json ===" && ls -la && cat package.json
22
+
23
+ # Copy app package.json
24
+ COPY trigo-web/app/package.json ./app/package.json
25
+ COPY trigo-web/app/package-lock.json ./app/package-lock.json
26
+
27
+ # Check app
28
+ RUN echo "=== Step 2: App package.json ===" && ls -la app/ && cat app/package.json
29
+
30
+ # Copy backend package.json
31
+ COPY trigo-web/backend/package.json ./backend/package.json
32
+ COPY trigo-web/backend/package-lock.json ./backend/package-lock.json
33
+
34
+ # Check backend
35
+ RUN echo "=== Step 3: Backend package.json ===" && ls -la backend/ && cat backend/package.json
36
+
37
+ # Install build tools
38
  RUN npm install -g tsx jison typescript esbuild
39
 
40
+ # Install root deps
41
+ RUN echo "=== Step 4: Installing root deps ===" && npm install --omit=dev
42
+
43
+ # Install app deps
44
+ RUN echo "=== Step 5: Installing app deps ===" && cd app && npm install
45
+
46
+ # Install backend deps
47
+ RUN echo "=== Step 6: Installing backend deps ===" && cd backend && npm install
48
 
49
  # Copy source files
50
  COPY trigo-web/inc/ ./inc/
 
51
  COPY trigo-web/app/src/ ./app/src/
52
  COPY trigo-web/app/index.html ./app/
53
  COPY trigo-web/app/vite.config.ts ./app/
 
55
  COPY trigo-web/backend/src/ ./backend/src/
56
  COPY trigo-web/backend/tsconfig.json ./backend/
57
 
58
+ # Check source files
59
+ RUN echo "=== Step 7: Source files ===" && ls -la app/src/ && ls -la backend/src/
60
+
61
+ # Copy public folder (may have LFS issues)
62
+ COPY trigo-web/public/ ./public/
63
+ RUN echo "=== Step 8: Public folder ===" && ls -la public/ && du -sh public/
64
+
65
+ # Copy env files
66
  COPY trigo-web/.env* ./
67
  COPY trigo-web/app/.env* ./app/
68
  COPY trigo-web/backend/.env* ./backend/
69
 
70
+ # Build frontend
71
+ RUN echo "=== Step 9: Building frontend ===" && \
72
  cd app && \
73
+ NODE_OPTIONS="--max-old-space-size=4096" npm run build:prod 2>&1 || \
74
+ (echo "VITE BUILD FAILED" && exit 1)
75
+
76
+ RUN echo "=== Step 10: Frontend dist ===" && ls -la app/dist/
77
 
78
  # Build backend
79
+ RUN echo "=== Step 11: Building backend ===" && \
80
  mkdir -p backend/dist/backend/src && \
81
+ esbuild backend/src/server.ts --bundle --platform=node --target=node20 --format=esm \
82
+ --outfile=backend/dist/backend/src/server.js \
83
+ --external:express --external:socket.io --external:cors --external:dotenv --external:uuid
84
+
85
+ RUN echo "=== Step 12: Backend dist ===" && ls -la backend/dist/backend/src/
86
 
87
+ # Copy parser
88
  COPY trigo-web/public/lib/tgnParser.cjs ./public/lib/
89
 
 
90
  ENV PORT=7860
91
  ENV HOST=0.0.0.0
92
  ENV NODE_ENV=production
93
 
 
94
  EXPOSE 7860
95
 
 
96
  CMD ["npm", "run", "start:prod"]