FROM node:20-alpine

WORKDIR /app

# Kopieer package.json en package-lock.json
COPY package*.json ./

# Installeer dependencies (Alleen productie indien gewenst)
RUN npm install

# Kopieer de rest van de backend code en geef eigenaarschap aan de node user
COPY --chown=node:node . .

# Expose de poort (bijv 3005 of uit .env)
EXPOSE 3005

# Schakel over naar de onbevoorrechte node user voor security (Least-Privilege)
USER node

# Start het live script via PM2 voor crash-recovery (maar zonder cluster mode i.v.m. websockets zonder Redis)
CMD ["npx", "pm2-runtime", "start", "index_live.js", "-i", "1", "--name", "coin-trader"]
