# The service desk demo server (MINI_APPS_DESIGN.md, 19.4). Its one dependency is the PostgreSQL client, installed
# exactly as package-lock.json pins it (the versions the stand runs: graphql-server-dev/node_modules). The base image
# is pinned to the Node.js release the demos are tested on.
FROM node:22.22.0-alpine
WORKDIR /app
COPY package.json package-lock.json ./
RUN npm ci --omit=dev --ignore-scripts --no-audit --no-fund && npm cache clean --force
COPY server.mjs ./
COPY lib ./lib
ENV HOST=0.0.0.0 DATA_DIR=/data NODE_ENV=production
USER node
CMD ["node", "server.mjs"]
