k-l-lambda Claude commited on
Commit
8c053fb
·
1 Parent(s): 196976e

Simplify Dockerfile - copy directories without wildcards

Browse files

Docker COPY with wildcards may have issues.
Copy entire directories at once instead.

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

Files changed (1) hide show
  1. Dockerfile +12 -28
Dockerfile CHANGED
@@ -2,7 +2,7 @@ FROM node:20-slim
2
 
3
  ENV DEBIAN_FRONTEND=noninteractive
4
 
5
- # Build timestamp: 2026-01-13T00:25
6
 
7
  WORKDIR /app
8
 
@@ -12,50 +12,34 @@ RUN npm install -g esbuild
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
- RUN echo "Step 1: Dependencies installed"
16
 
17
  # Copy backend source
18
  RUN mkdir -p backend
19
  COPY trigo-web/backend/src/ ./backend/src/
20
- RUN echo "Step 2: Backend source copied"
21
 
22
  # Build backend with esbuild
23
  RUN mkdir -p backend/dist/backend/src && \
24
  esbuild backend/src/server.ts --bundle --platform=node --target=node20 --format=esm \
25
  --outfile=backend/dist/backend/src/server.js \
26
  --external:express --external:socket.io --external:cors --external:dotenv --external:uuid
27
- RUN echo "Step 3: Backend built"
28
 
29
- # Copy frontend dist - test with explicit file listing
30
- # First create directories
31
- RUN mkdir -p app/dist/assets app/dist/lib
32
 
33
- # Copy non-LFS files first (JS, CSS, HTML)
34
- COPY trigo-web/app/dist/index.html ./app/dist/
35
- COPY trigo-web/app/dist/assets/*.js ./app/dist/assets/
36
- COPY trigo-web/app/dist/assets/*.css ./app/dist/assets/
37
- COPY trigo-web/app/dist/assets/*.png ./app/dist/assets/
38
- COPY trigo-web/app/dist/lib/ ./app/dist/lib/
39
- RUN echo "Step 4a: Non-LFS frontend files copied"
40
-
41
- # Try to copy LFS files (WASM) - this might fail
42
- COPY trigo-web/app/dist/assets/*.wasm ./app/dist/assets/
43
- RUN echo "Step 4b: WASM file copied"
44
-
45
- # Copy ONNX directories (LFS)
46
- COPY trigo-web/app/dist/onnx/ ./app/dist/onnx/
47
- RUN echo "Step 4c: ONNX files copied"
48
-
49
- # Check what we have
50
- RUN echo "Step 5: Checking dist contents" && ls -la app/dist/ && ls -la app/dist/assets/ | head -5
51
-
52
- # Copy other files
53
  COPY trigo-web/public/ ./public/
 
 
 
54
  COPY trigo-web/.env ./.env
55
  COPY trigo-web/backend/.env ./backend/.env
56
  COPY trigo-web/backend/.env.local ./backend/.env.local
57
  COPY trigo-web/inc/ ./inc/
58
- RUN echo "Step 6: All files copied"
59
 
60
  ENV PORT=7860
61
  ENV HOST=0.0.0.0
 
2
 
3
  ENV DEBIAN_FRONTEND=noninteractive
4
 
5
+ # Build timestamp: 2026-01-13T00:30
6
 
7
  WORKDIR /app
8
 
 
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
+ RUN echo "=== Step 1: Dependencies installed ==="
16
 
17
  # Copy backend source
18
  RUN mkdir -p backend
19
  COPY trigo-web/backend/src/ ./backend/src/
20
+ RUN echo "=== Step 2: Backend source copied ==="
21
 
22
  # Build backend with esbuild
23
  RUN mkdir -p backend/dist/backend/src && \
24
  esbuild backend/src/server.ts --bundle --platform=node --target=node20 --format=esm \
25
  --outfile=backend/dist/backend/src/server.js \
26
  --external:express --external:socket.io --external:cors --external:dotenv --external:uuid
27
+ RUN echo "=== Step 3: Backend built ==="
28
 
29
+ # Copy entire frontend dist directory at once (no wildcards)
30
+ COPY trigo-web/app/dist/ ./app/dist/
31
+ RUN echo "=== Step 4: Frontend dist copied ===" && ls -la app/dist/
32
 
33
+ # Copy public folder
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
34
  COPY trigo-web/public/ ./public/
35
+ RUN echo "=== Step 5: Public copied ==="
36
+
37
+ # Copy env and other files
38
  COPY trigo-web/.env ./.env
39
  COPY trigo-web/backend/.env ./backend/.env
40
  COPY trigo-web/backend/.env.local ./backend/.env.local
41
  COPY trigo-web/inc/ ./inc/
42
+ RUN echo "=== Step 6: All files copied ==="
43
 
44
  ENV PORT=7860
45
  ENV HOST=0.0.0.0