FROM node:20-alpine # Install build dependencies and runtime dependencies for gramJS RUN apk add --no-cache python3 make g++ cairo-dev pango-dev libjpeg-turbo-dev # Create app directory WORKDIR /app # Copy package files COPY package*.json ./ # Install dependencies RUN npm install --production # Copy app source COPY . . # Create sessions directory RUN mkdir -p sessions && chmod 755 sessions # 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 RUN chown -R nodejs:nodejs /app USER nodejs # Expose port EXPOSE 3003 # Health check HEALTHCHECK --interval=30s --timeout=3s --start-period=40s \ CMD node healthcheck.js || exit 1 # Start the service CMD ["node", "src/app.js"]