FROM node@sha256:e58326d0d441090181ac150dc2078d3e2cf6a0d42e809aebba3ef5880935ffdd

WORKDIR /opt/botsu
ENV NODE_ENV=production

COPY packages/protocol/package.json packages/protocol/package-lock.json ./packages/protocol/
COPY packages/protocol/src ./packages/protocol/src
COPY apps/presence-api/package.json apps/presence-api/package-lock.json ./apps/presence-api/
RUN cd apps/presence-api \
  && npm ci --omit=dev --workspaces=false \
  && npm cache clean --force
COPY apps/presence-api/src ./apps/presence-api/src

USER node
EXPOSE 8091
HEALTHCHECK --interval=30s --timeout=5s --start-period=10s --retries=3 \
  CMD node -e "fetch('http://127.0.0.1:8091/health').then(r=>{if(!r.ok)process.exit(1)}).catch(()=>process.exit(1))"
CMD ["node", "--experimental-strip-types", "apps/presence-api/src/server.ts"]
