# syntax=docker/dockerfile:1

###############################################################################
# The MCP server, over HTTP. Its own image rather than a fourth command in the
# PHP one: it shares no code with the application, only the API between them,
# and Node is a runtime that image has no other reason to carry.
###############################################################################
FROM node:22-alpine

WORKDIR /app

ENV NODE_ENV=production \
    LANDING_MCP_HOST=0.0.0.0 \
    LANDING_MCP_PORT=3000

COPY package.json package-lock.json ./
RUN npm ci --omit=dev && npm cache clean --force

COPY server.mjs ./
COPY src ./src

USER node

EXPOSE 3000

CMD ["node", "server.mjs", "--http"]
