FROM node:20-alpine # Install build dependencies RUN apk add --no-cache python3 make g++ # Create app directory WORKDIR /app # Copy package files COPY package*.json ./ # Install dependencies RUN npm install --production # Copy app source COPY . . # Create non-root user RUN addgroup -g 1001 -S nodejs RUN adduser -S nodejs -u 1001 # Create logs directory with proper permissions RUN mkdir -p logs && chown -R nodejs:nodejs logs USER nodejs # Expose port EXPOSE 3001 # Health check HEALTHCHECK --interval=30s --timeout=3s --start-period=40s \ CMD node healthcheck.js || exit 1 # Start the service CMD ["node", "src/app.js"]