k-l-lambda Claude commited on
Commit
1383f8e
·
1 Parent(s): 6961147

Use .dockerignore to exclude LFS files (WASM, ONNX)

Browse files

- Add LFS file patterns to .dockerignore
- Simplify Dockerfile to copy entire directories
- LFS files will be excluded automatically

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

Files changed (2) hide show
  1. .dockerignore +6 -4
  2. Dockerfile +5 -15
.dockerignore CHANGED
@@ -6,7 +6,7 @@
6
  # Documentation
7
  README.md
8
 
9
- # Node modules (will be installed during build)
10
  node_modules
11
  **/node_modules
12
 
@@ -21,7 +21,7 @@ tests
21
  .idea
22
  *.log
23
 
24
- # Environment files - keep .env for build
25
  .env.local
26
  .env.*.local
27
 
@@ -35,5 +35,7 @@ temp/
35
  .DS_Store
36
  Thumbs.db
37
 
38
- # Don't exclude pre-built dist folders
39
- # We're NOT using **/dist because it breaks the negation patterns
 
 
 
6
  # Documentation
7
  README.md
8
 
9
+ # Node modules
10
  node_modules
11
  **/node_modules
12
 
 
21
  .idea
22
  *.log
23
 
24
+ # Environment files that shouldn't be copied
25
  .env.local
26
  .env.*.local
27
 
 
35
  .DS_Store
36
  Thumbs.db
37
 
38
+ # Exclude LFS tracked files that are too large
39
+ **/*.wasm
40
+ **/*.onnx
41
+ **/onnx/
Dockerfile CHANGED
@@ -2,7 +2,7 @@ FROM node:20-slim
2
 
3
  ENV DEBIAN_FRONTEND=noninteractive
4
 
5
- # Build timestamp: 2026-01-13T01:10
6
 
7
  WORKDIR /app
8
 
@@ -10,7 +10,6 @@ WORKDIR /app
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
 
@@ -21,20 +20,11 @@ RUN esbuild backend/src/server.ts --bundle --platform=node --target=node20 --for
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
 
2
 
3
  ENV DEBIAN_FRONTEND=noninteractive
4
 
5
+ # Build timestamp: 2026-01-13T01:15
6
 
7
  WORKDIR /app
8
 
 
10
  RUN npm install -g esbuild
11
 
12
  # Copy backend package.json and install deps at root level
 
13
  COPY trigo-web/backend/package.json ./package.json
14
  RUN npm install --omit=dev
15
 
 
20
  --outfile=backend/dist/backend/src/server.js \
21
  --external:express --external:socket.io --external:cors --external:dotenv --external:uuid
22
 
23
+ # Copy frontend dist (LFS files excluded via .dockerignore)
24
+ COPY trigo-web/app/dist/ ./app/dist/
 
 
 
25
 
26
+ # Copy public folder (ONNX excluded via .dockerignore)
27
+ COPY trigo-web/public/ ./public/
 
 
 
 
 
 
28
 
29
  # Copy env files
30
  COPY trigo-web/.env ./.env