From c773740634505c0f57d0e5ee584df7d994ddce7d Mon Sep 17 00:00:00 2001 From: donpat1to Date: Sun, 26 Oct 2025 01:18:25 +0200 Subject: [PATCH] using npm install instead of npm ci --- .github/workflows/docker.yml | 4 +--- Dockerfile | 23 +++++------------------ 2 files changed, 6 insertions(+), 21 deletions(-) diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml index 5f27448..3860c58 100644 --- a/.github/workflows/docker.yml +++ b/.github/workflows/docker.yml @@ -78,9 +78,7 @@ jobs: - name: Install backend dependencies working-directory: ./backend - run: | - # Try npm ci first, if it fails use npm install - npm ci || (echo "package-lock.json out of sync, using npm install..." && npm install) + run: npm install - name: Run TypeScript check working-directory: ./backend diff --git a/Dockerfile b/Dockerfile index 097e7b0..7b39d80 100644 --- a/Dockerfile +++ b/Dockerfile @@ -13,10 +13,10 @@ RUN ln -sf /usr/bin/python3 /usr/bin/python # Copy all files COPY . . -# Install all dependencies (workspaces) -RUN npm ci +# Use npm install instead of npm ci to avoid the bug +RUN npm install -# Build backend +# Build backend first RUN npm run build --workspace=backend # Build frontend @@ -25,45 +25,32 @@ RUN npm run build --workspace=frontend # Verify Python and OR-Tools installation RUN python -c "from ortools.sat.python import cp_model; print('OR-Tools installed successfully')" -# Production stage +# Production stage - same as above FROM node:20-bookworm WORKDIR /app -# Install PM2 for process management RUN npm install -g pm2 -# Create data directory for SQLite database with proper permissions RUN mkdir -p /app/data -# Copy backend built files COPY --from=builder /app/backend/dist/ ./dist/ COPY --from=builder /app/backend/package*.json ./ - -# Copy only production dependencies COPY --from=builder /app/node_modules/ ./node_modules/ - -# Copy frontend built files COPY --from=builder /app/frontend/dist/ ./frontend-build/ - -# Copy PM2 configuration COPY --from=builder /app/ecosystem.config.cjs ./ -# Create a non-root user and group - DEBIAN STYLE RUN groupadd -g 1001 nodejs && \ useradd -m -u 1001 -s /bin/bash -g nodejs schichtplan && \ chown -R schichtplan:nodejs /app && \ chmod 755 /app && \ chmod 775 /app/data -# Set PM2 to use app directory instead of home directory ENV PM2_HOME=/app/.pm2 - USER schichtplan - EXPOSE 3002 HEALTHCHECK --interval=30s --timeout=10s --start-period=40s --retries=3 \ CMD wget --no-verbose --tries=1 --spider http://localhost:3002/api/health || exit 1 - + CMD ["pm2-runtime", "ecosystem.config.cjs"] \ No newline at end of file