FROM node:20-alpine

RUN apk add --no-cache npm

WORKDIR /app

COPY package.json ./
COPY packages packages/
COPY apps apps/
COPY tsconfig.json ./

# Convert pnpm workspace:* protocol to npm file: protocol
RUN sed -i 's|"@shared/types": "workspace:\*"|"@shared/types": "file:../../packages/shared-types"|g' apps/api-server/package.json apps/web-dashboard/package.json apps/worker/package.json

RUN npm install

RUN cd packages/shared-types && npm run build
RUN cd apps/api-server && npm run build

EXPOSE 3001
CMD ["node", "apps/api-server/dist/main.js"]
