FROM node:20-slim AS builder WORKDIR /app COPY package.json tsconfig.base.json ./ COPY packages/backend/package.json packages/backend/ COPY packages/frontend/package.json packages/frontend/ RUN npm install COPY packages/ packages/ RUN npm run build FROM node:20-slim RUN apt-get update && apt-get install -y --no-install-recommends \ curl \ git \ && rm -rf /var/lib/apt/lists/* # nwn_gff for toolset GFF→JSON conversion (temp0/ watcher) RUN curl -L https://github.com/layonara/neverwinter.nim/releases/download/v2.1.2-layonara/neverwinter-tools-linux-x64.tar.gz \ | tar xz -C /usr/local/bin/ \ && nwn_gff --version WORKDIR /app COPY package.json tsconfig.base.json ./ COPY packages/backend/package.json packages/backend/ COPY packages/frontend/package.json packages/frontend/ RUN npm install --omit=dev COPY --from=builder /app/packages/backend/dist packages/backend/dist COPY --from=builder /app/packages/frontend/dist packages/frontend/dist COPY db/ db/ EXPOSE 3000 CMD ["node", "packages/backend/dist/index.js"]