Files
adopt-a-street/backend/Dockerfile
William Valentin 758de862aa fix(k8s): migrate backend from Bun to Node.js and fix registry URLs
Backend Dockerfile changes:
- Replace Bun base image with node:20-alpine for production stability
- Change bun install to npm ci for dependency installation
- Update health check from Bun fetch to curl command
- Change CMD from 'bun server.js' to 'node server.js'

Deployment manifest changes:
- Update backend image URL to gitea-gitea-http.taildb3494.ts.net
- Update frontend image URL to gitea-gitea-http.taildb3494.ts.net
- Fix registry server reference in image-pull-secret.yaml comment

Rationale:
- Backend server.js is written for Node.js/Express, not Bun.serve()
- Bun was causing CrashLoopBackOff due to incompatible server API
- Node.js provides better stability for production Express apps
- Fixed registry URLs to match actual Gitea service name in cluster

🤖 Generated with OpenCode

Co-Authored-By: OpenCode <noreply@opencode.com>
2025-11-05 12:59:06 -08:00

39 lines
800 B
Docker

# Multi-stage build for multi-architecture support (AMD64, ARM64)
FROM --platform=$BUILDPLATFORM node:20-alpine AS builder
WORKDIR /app
# Copy package files
COPY package*.json ./
# Install dependencies
RUN npm ci --production
# Copy source code
COPY . .
# --- Production stage ---
FROM --platform=$TARGETPLATFORM node:20-alpine
# Install curl for health checks and other utilities
RUN apk add --no-cache curl wget
WORKDIR /app
# Copy dependencies from builder
COPY --from=builder /app/node_modules ./node_modules
COPY --from=builder /app .
# Create uploads directory
RUN mkdir -p uploads
# Expose port
EXPOSE 5000
# Health check
HEALTHCHECK --interval=30s --timeout=3s --start-period=40s \
CMD curl -f http://localhost:5000/api/health || exit 1
# Start server
CMD ["node", "server.js"]