k-l-lambda Claude commited on
Commit
f35f8c5
·
1 Parent(s): d1748ef

Skip frontend build, use pre-built dist folder

Browse files

- Remove app npm install and vite build (was failing)
- Copy pre-built dist folder directly
- Only build backend with esbuild
- Add check for LFS file integrity

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

Files changed (1) hide show
  1. Dockerfile +32 -26
Dockerfile CHANGED
@@ -1,49 +1,35 @@
1
- FROM node:20
2
 
3
  ENV DEBIAN_FRONTEND=noninteractive
4
 
5
- # Build timestamp: 2026-01-12T23:10
6
 
7
- RUN apt-get update && apt-get install -y curl git && rm -rf /var/lib/apt/lists/*
8
 
9
  WORKDIR /app
10
 
11
- RUN mkdir -p app backend
 
12
 
13
- # Copy package files explicitly (no wildcards)
 
14
  COPY trigo-web/package.json ./package.json
15
  COPY trigo-web/package-lock.json ./package-lock.json
16
- COPY trigo-web/app/package.json ./app/package.json
17
- COPY trigo-web/app/package-lock.json ./app/package-lock.json
18
  COPY trigo-web/backend/package.json ./backend/package.json
19
  COPY trigo-web/backend/package-lock.json ./backend/package-lock.json
20
 
21
  # Install build tools
22
- RUN npm install -g tsx jison typescript esbuild
23
 
24
- # Install deps with verbose output
25
  RUN npm install --omit=dev
26
- RUN cd app && npm install --loglevel verbose 2>&1 || (echo "APP NPM INSTALL FAILED" && exit 1)
 
27
  RUN cd backend && npm install
28
 
29
- # Copy source files
30
- COPY trigo-web/inc/ ./inc/
31
- COPY trigo-web/app/src/ ./app/src/
32
- COPY trigo-web/app/index.html ./app/
33
- COPY trigo-web/app/vite.config.ts ./app/
34
  COPY trigo-web/backend/src/ ./backend/src/
35
  COPY trigo-web/backend/tsconfig.json ./backend/
36
- COPY trigo-web/public/ ./public/
37
- COPY trigo-web/tsconfig.json ./tsconfig.json
38
-
39
- # Copy env files (explicit, no wildcards)
40
- COPY trigo-web/.env ./.env
41
- COPY trigo-web/app/.env ./app/.env
42
- COPY trigo-web/backend/.env ./backend/.env
43
- COPY trigo-web/backend/.env.local ./backend/.env.local
44
-
45
- # Build frontend
46
- RUN cd app && NODE_OPTIONS="--max-old-space-size=4096" npm run build:prod
47
 
48
  # Build backend
49
  RUN mkdir -p backend/dist/backend/src && \
@@ -51,9 +37,29 @@ RUN mkdir -p backend/dist/backend/src && \
51
  --outfile=backend/dist/backend/src/server.js \
52
  --external:express --external:socket.io --external:cors --external:dotenv --external:uuid
53
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
54
  # Copy parser
55
  COPY trigo-web/public/lib/tgnParser.cjs ./public/lib/
56
 
 
 
 
 
 
 
57
  ENV PORT=7860
58
  ENV HOST=0.0.0.0
59
  ENV NODE_ENV=production
 
1
+ FROM node:20-slim
2
 
3
  ENV DEBIAN_FRONTEND=noninteractive
4
 
5
+ # Build timestamp: 2026-01-12T23:20
6
 
7
+ RUN apt-get update && apt-get install -y curl git git-lfs && rm -rf /var/lib/apt/lists/*
8
 
9
  WORKDIR /app
10
 
11
+ # Initialize git-lfs
12
+ RUN git lfs install
13
 
14
+ # Copy package files
15
+ RUN mkdir -p app backend
16
  COPY trigo-web/package.json ./package.json
17
  COPY trigo-web/package-lock.json ./package-lock.json
 
 
18
  COPY trigo-web/backend/package.json ./backend/package.json
19
  COPY trigo-web/backend/package-lock.json ./backend/package-lock.json
20
 
21
  # Install build tools
22
+ RUN npm install -g tsx esbuild
23
 
24
+ # Install root deps (production only)
25
  RUN npm install --omit=dev
26
+
27
+ # Install backend deps
28
  RUN cd backend && npm install
29
 
30
+ # Copy backend source
 
 
 
 
31
  COPY trigo-web/backend/src/ ./backend/src/
32
  COPY trigo-web/backend/tsconfig.json ./backend/
 
 
 
 
 
 
 
 
 
 
 
33
 
34
  # Build backend
35
  RUN mkdir -p backend/dist/backend/src && \
 
37
  --outfile=backend/dist/backend/src/server.js \
38
  --external:express --external:socket.io --external:cors --external:dotenv --external:uuid
39
 
40
+ # Copy pre-built frontend dist directly (skip app npm install and vite build)
41
+ COPY trigo-web/app/dist/ ./app/dist/
42
+
43
+ # Copy public folder
44
+ COPY trigo-web/public/ ./public/
45
+
46
+ # Copy env files
47
+ COPY trigo-web/.env ./.env
48
+ COPY trigo-web/backend/.env ./backend/.env
49
+ COPY trigo-web/backend/.env.local ./backend/.env.local
50
+
51
+ # Copy inc folder (shared types)
52
+ COPY trigo-web/inc/ ./inc/
53
+
54
  # Copy parser
55
  COPY trigo-web/public/lib/tgnParser.cjs ./public/lib/
56
 
57
+ # Check that LFS files were properly copied
58
+ RUN echo "=== Checking LFS files ===" && \
59
+ ls -la app/dist/assets/*.wasm 2>/dev/null || echo "No WASM files found" && \
60
+ ls -la app/dist/onnx/*/*.onnx 2>/dev/null | head -5 || echo "No ONNX files found" && \
61
+ file app/dist/assets/*.wasm 2>/dev/null | head -1 || echo "Cannot check file type"
62
+
63
  ENV PORT=7860
64
  ENV HOST=0.0.0.0
65
  ENV NODE_ENV=production