# 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"]