# Usamos Node.js con Alpine para menor tamaño
FROM node:22-alpine

# Configurar entorno global
ENV NODEJS_ORG_MIRROR=https://nodejs.org/dist \
    NODE_ENV=production

# Instalar TypeScript y limpiar cache
RUN npm install -g typescript && npm cache clean --force

# Crear carpetas de trabajo separadas para server y client
WORKDIR /app

ARG DOCKER_GID=1001 # Valor por defecto
RUN addgroup -g ${DOCKER_GID} docker && \
    addgroup node docker

WORKDIR /app/bot-admin-api
COPY package*.json ./
RUN npm install --omit=dev=false
COPY . ./
RUN npm run build

# Configurar puertos expuestos
EXPOSE 3005

# Comando de inicio que lanza tanto el server como el client
CMD [ "sh", "-c", "npm --prefix /app/bot-admin-api start" ]