Spaces:
Sleeping
Sleeping
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>
- 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:
|
| 6 |
|
| 7 |
-
RUN apt-get update && apt-get install -y curl git && rm -rf /var/lib/apt/lists/*
|
| 8 |
|
| 9 |
WORKDIR /app
|
| 10 |
|
| 11 |
-
|
|
|
|
| 12 |
|
| 13 |
-
# Copy package files
|
|
|
|
| 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
|
| 23 |
|
| 24 |
-
# Install deps
|
| 25 |
RUN npm install --omit=dev
|
| 26 |
-
|
|
|
|
| 27 |
RUN cd backend && npm install
|
| 28 |
|
| 29 |
-
# Copy source
|
| 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
|