# syntax=docker/dockerfile:1

FROM node:24-alpine AS builder

WORKDIR /app
COPY package*.json ./

# Optional: provide a custom CA certificate for npm TLS (e.g. behind a corporate proxy).
# Build with: docker build --secret id=ca-cert,src=/path/to/ca-bundle.pem -t web-dev-mcp .
RUN --mount=type=secret,id=ca-cert,dst=/tmp/ca-bundle.pem \
  if [ -f /tmp/ca-bundle.pem ]; then export NODE_EXTRA_CA_CERTS=/tmp/ca-bundle.pem; fi && \
  npm ci

COPY . .
RUN npm run build

FROM node:24-alpine

WORKDIR /app

COPY package*.json ./

RUN --mount=type=secret,id=ca-cert,dst=/tmp/ca-bundle.pem \
  if [ -f /tmp/ca-bundle.pem ]; then export NODE_EXTRA_CA_CERTS=/tmp/ca-bundle.pem; fi && \
  npm ci --omit=dev && npm cache clean --force

COPY --from=builder /app/dist ./dist

ENV NODE_ENV=production
ENV WORKSPACE_ROOT=/workspace

EXPOSE 3939

CMD ["node", "dist/transports/http.js"]
