k-l-lambda commited on
Commit
48fe432
·
1 Parent(s): 1f609d0

Bundle all dependencies (remove --external flags)

Browse files
Files changed (1) hide show
  1. Dockerfile +10 -16
Dockerfile CHANGED
@@ -2,27 +2,27 @@ FROM node:20-slim
2
 
3
  ENV DEBIAN_FRONTEND=noninteractive
4
 
5
- # Build timestamp: 2026-01-13T02:45
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
  COPY trigo-web/backend/package.json ./package.json
14
- RUN npm install --omit=dev
15
 
16
- # Copy backend source and build
17
  RUN mkdir -p backend backend/dist/backend/src
18
  COPY trigo-web/backend/src/ ./backend/src/
19
 
20
  # Copy inc folder (needed for esbuild)
21
  COPY trigo-web/inc/ ./inc/
22
 
 
23
  RUN esbuild backend/src/server.ts --bundle --platform=node --target=node20 --format=esm \
24
- --outfile=backend/dist/backend/src/server.js \
25
- --external:express --external:socket.io --external:cors --external:dotenv --external:uuid
26
 
27
  # Copy frontend dist
28
  COPY trigo-web/app/dist/ ./app/dist/
@@ -31,19 +31,13 @@ COPY trigo-web/app/dist/ ./app/dist/
31
  COPY trigo-web/backend/.env ./backend/.env
32
  COPY trigo-web/backend/.env.local ./backend/.env.local
33
 
 
 
 
34
  ENV PORT=7860
35
  ENV HOST=0.0.0.0
36
  ENV NODE_ENV=production
37
 
38
  EXPOSE 7860
39
 
40
- # Create a wrapper script to catch errors
41
- RUN echo '#!/bin/sh' > /start.sh && \
42
- echo 'echo "Starting server..."' >> /start.sh && \
43
- echo 'node --version' >> /start.sh && \
44
- echo 'pwd' >> /start.sh && \
45
- echo 'ls -la backend/dist/backend/src/server.js' >> /start.sh && \
46
- echo 'exec node backend/dist/backend/src/server.js' >> /start.sh && \
47
- chmod +x /start.sh
48
-
49
- CMD ["/start.sh"]
 
2
 
3
  ENV DEBIAN_FRONTEND=noninteractive
4
 
5
+ # Build timestamp: 2026-01-13T03:05
6
 
7
  WORKDIR /app
8
 
9
  # Install esbuild globally
10
  RUN npm install -g esbuild
11
 
12
+ # Copy backend package.json and install deps for bundling
13
  COPY trigo-web/backend/package.json ./package.json
14
+ RUN npm install
15
 
16
+ # Copy backend source
17
  RUN mkdir -p backend backend/dist/backend/src
18
  COPY trigo-web/backend/src/ ./backend/src/
19
 
20
  # Copy inc folder (needed for esbuild)
21
  COPY trigo-web/inc/ ./inc/
22
 
23
+ # Bundle EVERYTHING into one file (no external deps)
24
  RUN esbuild backend/src/server.ts --bundle --platform=node --target=node20 --format=esm \
25
+ --outfile=backend/dist/backend/src/server.js
 
26
 
27
  # Copy frontend dist
28
  COPY trigo-web/app/dist/ ./app/dist/
 
31
  COPY trigo-web/backend/.env ./backend/.env
32
  COPY trigo-web/backend/.env.local ./backend/.env.local
33
 
34
+ # Verify server file
35
+ RUN ls -la backend/dist/backend/src/server.js
36
+
37
  ENV PORT=7860
38
  ENV HOST=0.0.0.0
39
  ENV NODE_ENV=production
40
 
41
  EXPOSE 7860
42
 
43
+ CMD ["node", "backend/dist/backend/src/server.js"]