Spaces:
Sleeping
Sleeping
Commit
·
26001bb
1
Parent(s):
7bb4f7a
Use yarn for root install, npm for backend
Browse files- Use yarn for root level (has yarn.lock)
- Use npm ci for backend (no yarn.lock)
- Skip devDependencies for backend (not needed for production)
Co-Authored-By: Claude <noreply@anthropic.com>
- Dockerfile +15 -16
Dockerfile
CHANGED
|
@@ -2,30 +2,30 @@ FROM node:20-slim
|
|
| 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 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/
|
| 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
|
| 22 |
-
RUN
|
| 23 |
|
| 24 |
-
# Install
|
| 25 |
-
|
| 26 |
-
|
| 27 |
-
# Install backend deps with retry
|
| 28 |
-
RUN cd backend && (npm ci || npm install --force)
|
| 29 |
|
| 30 |
# Copy backend source
|
| 31 |
COPY trigo-web/backend/src/ ./backend/src/
|
|
@@ -37,7 +37,7 @@ 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
|
| 41 |
COPY trigo-web/app/dist/ ./app/dist/
|
| 42 |
|
| 43 |
# Copy public folder
|
|
@@ -48,16 +48,15 @@ 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
|
| 52 |
COPY trigo-web/inc/ ./inc/
|
| 53 |
|
| 54 |
# Copy parser
|
| 55 |
COPY trigo-web/public/lib/tgnParser.cjs ./public/lib/
|
| 56 |
|
| 57 |
-
# Check
|
| 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
|
|
@@ -66,4 +65,4 @@ ENV NODE_ENV=production
|
|
| 66 |
|
| 67 |
EXPOSE 7860
|
| 68 |
|
| 69 |
-
CMD ["
|
|
|
|
| 2 |
|
| 3 |
ENV DEBIAN_FRONTEND=noninteractive
|
| 4 |
|
| 5 |
+
# Build timestamp: 2026-01-12T23:40
|
| 6 |
|
| 7 |
RUN apt-get update && apt-get install -y curl git git-lfs && rm -rf /var/lib/apt/lists/*
|
| 8 |
|
| 9 |
+
# Install yarn
|
| 10 |
+
RUN npm install -g yarn tsx esbuild
|
| 11 |
+
|
| 12 |
WORKDIR /app
|
| 13 |
|
| 14 |
# Initialize git-lfs
|
| 15 |
RUN git lfs install
|
| 16 |
|
| 17 |
+
# Copy all package files
|
| 18 |
RUN mkdir -p app backend
|
| 19 |
COPY trigo-web/package.json ./package.json
|
| 20 |
+
COPY trigo-web/yarn.lock ./yarn.lock
|
| 21 |
COPY trigo-web/backend/package.json ./backend/package.json
|
|
|
|
| 22 |
|
| 23 |
+
# Install root deps with yarn
|
| 24 |
+
RUN yarn install --production --frozen-lockfile || yarn install --production
|
| 25 |
|
| 26 |
+
# Install backend deps (no yarn.lock, use npm)
|
| 27 |
+
COPY trigo-web/backend/package-lock.json ./backend/package-lock.json
|
| 28 |
+
RUN cd backend && npm ci --omit=dev || npm install --omit=dev --force
|
|
|
|
|
|
|
| 29 |
|
| 30 |
# Copy backend source
|
| 31 |
COPY trigo-web/backend/src/ ./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
|
| 41 |
COPY trigo-web/app/dist/ ./app/dist/
|
| 42 |
|
| 43 |
# Copy public folder
|
|
|
|
| 48 |
COPY trigo-web/backend/.env ./backend/.env
|
| 49 |
COPY trigo-web/backend/.env.local ./backend/.env.local
|
| 50 |
|
| 51 |
+
# Copy inc folder
|
| 52 |
COPY trigo-web/inc/ ./inc/
|
| 53 |
|
| 54 |
# Copy parser
|
| 55 |
COPY trigo-web/public/lib/tgnParser.cjs ./public/lib/
|
| 56 |
|
| 57 |
+
# Check LFS files
|
| 58 |
RUN echo "=== Checking LFS files ===" && \
|
| 59 |
ls -la app/dist/assets/*.wasm 2>/dev/null || echo "No WASM files found" && \
|
|
|
|
| 60 |
file app/dist/assets/*.wasm 2>/dev/null | head -1 || echo "Cannot check file type"
|
| 61 |
|
| 62 |
ENV PORT=7860
|
|
|
|
| 65 |
|
| 66 |
EXPOSE 7860
|
| 67 |
|
| 68 |
+
CMD ["yarn", "start:prod"]
|