Spaces:
Sleeping
Sleeping
Commit
·
574ab36
1
Parent(s):
5b189e3
Add verbose step-by-step debug output to Dockerfile
Browse filesEach build step now prints output to help identify where the build fails.
Co-Authored-By: Claude <noreply@anthropic.com>
- Dockerfile +55 -33
Dockerfile
CHANGED
|
@@ -3,37 +3,51 @@ FROM node:20-slim
|
|
| 3 |
# Set noninteractive installation
|
| 4 |
ENV DEBIAN_FRONTEND=noninteractive
|
| 5 |
|
| 6 |
-
# Build timestamp
|
| 7 |
|
| 8 |
# Install build dependencies
|
| 9 |
-
RUN apt-get update && apt-get install -y
|
| 10 |
-
curl \
|
| 11 |
-
git \
|
| 12 |
-
&& rm -rf /var/lib/apt/lists/*
|
| 13 |
|
| 14 |
-
# Create app directory
|
| 15 |
WORKDIR /app
|
| 16 |
|
| 17 |
-
#
|
| 18 |
-
|
| 19 |
-
COPY trigo-web/app/package*.json ./app/
|
| 20 |
-
COPY trigo-web/backend/package*.json ./backend/
|
| 21 |
|
| 22 |
-
#
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 23 |
RUN npm install -g tsx jison typescript esbuild
|
| 24 |
|
| 25 |
-
# Install
|
| 26 |
-
RUN echo "=== Installing root
|
| 27 |
-
|
| 28 |
-
|
| 29 |
-
|
| 30 |
-
|
| 31 |
-
|
| 32 |
-
|
| 33 |
|
| 34 |
# Copy source files
|
| 35 |
COPY trigo-web/inc/ ./inc/
|
| 36 |
-
COPY trigo-web/public/ ./public/
|
| 37 |
COPY trigo-web/app/src/ ./app/src/
|
| 38 |
COPY trigo-web/app/index.html ./app/
|
| 39 |
COPY trigo-web/app/vite.config.ts ./app/
|
|
@@ -41,34 +55,42 @@ COPY trigo-web/app/tsconfig*.json ./app/
|
|
| 41 |
COPY trigo-web/backend/src/ ./backend/src/
|
| 42 |
COPY trigo-web/backend/tsconfig.json ./backend/
|
| 43 |
|
| 44 |
-
#
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 45 |
COPY trigo-web/.env* ./
|
| 46 |
COPY trigo-web/app/.env* ./app/
|
| 47 |
COPY trigo-web/backend/.env* ./backend/
|
| 48 |
|
| 49 |
-
# Build frontend
|
| 50 |
-
RUN echo "===
|
| 51 |
cd app && \
|
| 52 |
-
NODE_OPTIONS="--max-old-space-size=4096" npm run build:prod
|
| 53 |
-
echo "
|
| 54 |
-
|
|
|
|
| 55 |
|
| 56 |
# Build backend
|
| 57 |
-
RUN echo "=== Building backend ===" && \
|
| 58 |
mkdir -p backend/dist/backend/src && \
|
| 59 |
-
esbuild backend/src/server.ts --bundle --platform=node --target=node20 --format=esm
|
| 60 |
-
|
|
|
|
|
|
|
|
|
|
| 61 |
|
| 62 |
-
# Copy
|
| 63 |
COPY trigo-web/public/lib/tgnParser.cjs ./public/lib/
|
| 64 |
|
| 65 |
-
# Set environment variables for Hugging Face Spaces
|
| 66 |
ENV PORT=7860
|
| 67 |
ENV HOST=0.0.0.0
|
| 68 |
ENV NODE_ENV=production
|
| 69 |
|
| 70 |
-
# Expose port 7860 (required by Hugging Face Spaces)
|
| 71 |
EXPOSE 7860
|
| 72 |
|
| 73 |
-
# Start backend server (which will also serve frontend static files)
|
| 74 |
CMD ["npm", "run", "start:prod"]
|
|
|
|
| 3 |
# Set noninteractive installation
|
| 4 |
ENV DEBIAN_FRONTEND=noninteractive
|
| 5 |
|
| 6 |
+
# Build timestamp: 2026-01-12T22:45
|
| 7 |
|
| 8 |
# Install build dependencies
|
| 9 |
+
RUN apt-get update && apt-get install -y curl git && rm -rf /var/lib/apt/lists/*
|
|
|
|
|
|
|
|
|
|
| 10 |
|
|
|
|
| 11 |
WORKDIR /app
|
| 12 |
|
| 13 |
+
# Create directories
|
| 14 |
+
RUN mkdir -p app backend
|
|
|
|
|
|
|
| 15 |
|
| 16 |
+
# Copy root package.json
|
| 17 |
+
COPY trigo-web/package.json ./package.json
|
| 18 |
+
COPY trigo-web/package-lock.json ./package-lock.json
|
| 19 |
+
|
| 20 |
+
# Check what we have so far
|
| 21 |
+
RUN echo "=== Step 1: Root package.json ===" && ls -la && cat package.json
|
| 22 |
+
|
| 23 |
+
# Copy app package.json
|
| 24 |
+
COPY trigo-web/app/package.json ./app/package.json
|
| 25 |
+
COPY trigo-web/app/package-lock.json ./app/package-lock.json
|
| 26 |
+
|
| 27 |
+
# Check app
|
| 28 |
+
RUN echo "=== Step 2: App package.json ===" && ls -la app/ && cat app/package.json
|
| 29 |
+
|
| 30 |
+
# Copy backend package.json
|
| 31 |
+
COPY trigo-web/backend/package.json ./backend/package.json
|
| 32 |
+
COPY trigo-web/backend/package-lock.json ./backend/package-lock.json
|
| 33 |
+
|
| 34 |
+
# Check backend
|
| 35 |
+
RUN echo "=== Step 3: Backend package.json ===" && ls -la backend/ && cat backend/package.json
|
| 36 |
+
|
| 37 |
+
# Install build tools
|
| 38 |
RUN npm install -g tsx jison typescript esbuild
|
| 39 |
|
| 40 |
+
# Install root deps
|
| 41 |
+
RUN echo "=== Step 4: Installing root deps ===" && npm install --omit=dev
|
| 42 |
+
|
| 43 |
+
# Install app deps
|
| 44 |
+
RUN echo "=== Step 5: Installing app deps ===" && cd app && npm install
|
| 45 |
+
|
| 46 |
+
# Install backend deps
|
| 47 |
+
RUN echo "=== Step 6: Installing backend deps ===" && cd backend && npm install
|
| 48 |
|
| 49 |
# Copy source files
|
| 50 |
COPY trigo-web/inc/ ./inc/
|
|
|
|
| 51 |
COPY trigo-web/app/src/ ./app/src/
|
| 52 |
COPY trigo-web/app/index.html ./app/
|
| 53 |
COPY trigo-web/app/vite.config.ts ./app/
|
|
|
|
| 55 |
COPY trigo-web/backend/src/ ./backend/src/
|
| 56 |
COPY trigo-web/backend/tsconfig.json ./backend/
|
| 57 |
|
| 58 |
+
# Check source files
|
| 59 |
+
RUN echo "=== Step 7: Source files ===" && ls -la app/src/ && ls -la backend/src/
|
| 60 |
+
|
| 61 |
+
# Copy public folder (may have LFS issues)
|
| 62 |
+
COPY trigo-web/public/ ./public/
|
| 63 |
+
RUN echo "=== Step 8: Public folder ===" && ls -la public/ && du -sh public/
|
| 64 |
+
|
| 65 |
+
# Copy env files
|
| 66 |
COPY trigo-web/.env* ./
|
| 67 |
COPY trigo-web/app/.env* ./app/
|
| 68 |
COPY trigo-web/backend/.env* ./backend/
|
| 69 |
|
| 70 |
+
# Build frontend
|
| 71 |
+
RUN echo "=== Step 9: Building frontend ===" && \
|
| 72 |
cd app && \
|
| 73 |
+
NODE_OPTIONS="--max-old-space-size=4096" npm run build:prod 2>&1 || \
|
| 74 |
+
(echo "VITE BUILD FAILED" && exit 1)
|
| 75 |
+
|
| 76 |
+
RUN echo "=== Step 10: Frontend dist ===" && ls -la app/dist/
|
| 77 |
|
| 78 |
# Build backend
|
| 79 |
+
RUN echo "=== Step 11: Building backend ===" && \
|
| 80 |
mkdir -p backend/dist/backend/src && \
|
| 81 |
+
esbuild backend/src/server.ts --bundle --platform=node --target=node20 --format=esm \
|
| 82 |
+
--outfile=backend/dist/backend/src/server.js \
|
| 83 |
+
--external:express --external:socket.io --external:cors --external:dotenv --external:uuid
|
| 84 |
+
|
| 85 |
+
RUN echo "=== Step 12: Backend dist ===" && ls -la backend/dist/backend/src/
|
| 86 |
|
| 87 |
+
# Copy parser
|
| 88 |
COPY trigo-web/public/lib/tgnParser.cjs ./public/lib/
|
| 89 |
|
|
|
|
| 90 |
ENV PORT=7860
|
| 91 |
ENV HOST=0.0.0.0
|
| 92 |
ENV NODE_ENV=production
|
| 93 |
|
|
|
|
| 94 |
EXPOSE 7860
|
| 95 |
|
|
|
|
| 96 |
CMD ["npm", "run", "start:prod"]
|