35 lines
872 B
Docker
35 lines
872 B
Docker
# 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"]
|