k-l-lambda Claude commited on
Commit
fc1befc
·
1 Parent(s): cfb16ef

Skip LFS files (ONNX, WASM) - copy only essential frontend files

Browse files

LFS files don't work properly in Docker builds.
Skip them for now - app will work for basic gameplay without AI.

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

Files changed (1) hide show
  1. Dockerfile +28 -32
Dockerfile CHANGED
@@ -2,52 +2,48 @@ FROM node:20-slim
2
 
3
  ENV DEBIAN_FRONTEND=noninteractive
4
 
5
- # Build timestamp: 2026-01-13T00:55
6
-
7
- # Install git and git-lfs
8
- RUN apt-get update && apt-get install -y git git-lfs && rm -rf /var/lib/apt/lists/*
9
- RUN git lfs install
10
 
11
  WORKDIR /app
12
 
13
  # Install esbuild globally
14
  RUN npm install -g esbuild
15
 
16
- # Clone the repo to get LFS files properly
17
- RUN git clone --depth 1 https://huggingface.co/spaces/k-l-lambda/trigo /tmp/repo && \
18
- cd /tmp/repo && git lfs pull && \
19
- echo "=== Checking cloned repo ===" && \
20
- ls -la /tmp/repo/trigo-web/app/dist/ && \
21
- ls -la /tmp/repo/trigo-web/app/dist/assets/ | head -10
22
-
23
- # Copy files from cloned repo
24
- RUN cp /tmp/repo/trigo-web/backend/package.json ./package.json
25
  RUN npm install --omit=dev
26
 
27
  # Copy backend source and build
28
  RUN mkdir -p backend backend/dist/backend/src
29
- RUN cp -r /tmp/repo/trigo-web/backend/src ./backend/
30
  RUN esbuild backend/src/server.ts --bundle --platform=node --target=node20 --format=esm \
31
  --outfile=backend/dist/backend/src/server.js \
32
  --external:express --external:socket.io --external:cors --external:dotenv --external:uuid
33
 
34
- # Copy frontend dist (with LFS files properly resolved)
35
- RUN mkdir -p app && \
36
- (cp -r /tmp/repo/trigo-web/app/dist ./app/ || \
37
- (echo "=== CP FAILED ===" && \
38
- echo "Source exists:" && ls -la /tmp/repo/trigo-web/app/ && \
39
- echo "Source dist:" && ls -la /tmp/repo/trigo-web/app/dist/ 2>&1 || echo "dist not found" && \
40
- exit 1))
41
-
42
- # Copy public and other files
43
- RUN cp -r /tmp/repo/trigo-web/public ./
44
- RUN cp /tmp/repo/trigo-web/.env ./.env || true
45
- RUN mkdir -p backend && cp /tmp/repo/trigo-web/backend/.env ./backend/.env || true
46
- RUN cp /tmp/repo/trigo-web/backend/.env.local ./backend/.env.local || true
47
- RUN cp -r /tmp/repo/trigo-web/inc ./
48
-
49
- # Cleanup
50
- RUN rm -rf /tmp/repo
 
 
 
 
 
 
51
 
52
  ENV PORT=7860
53
  ENV HOST=0.0.0.0
 
2
 
3
  ENV DEBIAN_FRONTEND=noninteractive
4
 
5
+ # Build timestamp: 2026-01-13T01:00
 
 
 
 
6
 
7
  WORKDIR /app
8
 
9
  # Install esbuild globally
10
  RUN npm install -g esbuild
11
 
12
+ # Copy backend package.json and install deps at root level
13
+ # Use Docker COPY which works for non-LFS files
14
+ COPY trigo-web/backend/package.json ./package.json
 
 
 
 
 
 
15
  RUN npm install --omit=dev
16
 
17
  # Copy backend source and build
18
  RUN mkdir -p backend backend/dist/backend/src
19
+ COPY trigo-web/backend/src/ ./backend/src/
20
  RUN esbuild backend/src/server.ts --bundle --platform=node --target=node20 --format=esm \
21
  --outfile=backend/dist/backend/src/server.js \
22
  --external:express --external:socket.io --external:cors --external:dotenv --external:uuid
23
 
24
+ # Copy frontend dist - only non-LFS files
25
+ # Skip ONNX and WASM files (they're too large and LFS doesn't work in Docker)
26
+ RUN mkdir -p app/dist/assets app/dist/lib
27
+ COPY trigo-web/app/dist/index.html ./app/dist/
28
+ COPY trigo-web/app/dist/lib/ ./app/dist/lib/
29
+
30
+ # Copy JS, CSS, PNG files (these are small, non-LFS)
31
+ COPY trigo-web/app/dist/assets/*.js ./app/dist/assets/
32
+ COPY trigo-web/app/dist/assets/*.css ./app/dist/assets/
33
+ COPY trigo-web/app/dist/assets/*.png ./app/dist/assets/
34
+
35
+ # Copy public folder (contains ONNX models but we'll skip them for now)
36
+ RUN mkdir -p public/lib
37
+ COPY trigo-web/public/lib/tgnParser.cjs ./public/lib/
38
+
39
+ # Copy env files
40
+ COPY trigo-web/.env ./.env
41
+ RUN mkdir -p backend
42
+ COPY trigo-web/backend/.env ./backend/.env
43
+ COPY trigo-web/backend/.env.local ./backend/.env.local
44
+
45
+ # Copy inc folder
46
+ COPY trigo-web/inc/ ./inc/
47
 
48
  ENV PORT=7860
49
  ENV HOST=0.0.0.0