FROM node:18-alpine

WORKDIR /var/www/html_docker/grpc_engine

# Install PM2 globally
RUN npm install pm2 -g

# Install and configure PM2 Logrotate to keep logs in check
RUN pm2 install pm2-logrotate && \
    pm2 set pm2-logrotate:max_size 100M && \
    pm2 set pm2-logrotate:retain 10 && \
    pm2 set pm2-logrotate:compress true

# Copy package files
COPY grpc_engine/package*.json ./

# Install dependencies
RUN npm install --production

# Copy source code
COPY grpc_engine/ ./

# Port 50051 for gRPC
EXPOSE 50051

CMD ["pm2-runtime", "server.js"]
