FROM node:20-alpine

WORKDIR /app

COPY package*.json tsconfig.json ./
RUN npm install --production

COPY . .

# Compila o TypeScript
RUN npm run build

# Instala PM2 global
RUN npm install -g pm2

COPY ecosystem.config.cjs .

EXPOSE 3000

CMD pm2 install pm2-logrotate \
  && pm2 set pm2-logrotate:max_size 10M \
  && pm2 set pm2-logrotate:retain 7 \
  && pm2 set pm2-logrotate:compress true \
  && pm2 set pm2-logrotate:dateFormat YYYY-MM-DD_HH-mm-ss \
  && pm2 set pm2-logrotate:workerInterval 60 \
  && pm2 set pm2-logrotate:rotateInterval "0 0 * * *" \
  && pm2 set pm2-logrotate:rotateModule true \
  && pm2-runtime ecosystem.config.cjs
