# Generated by https://smithery.ai. See: https://smithery.ai/docs/config#dockerfile
# Use the official Node.js image with npm
FROM node:22.12-alpine AS builder
# Set working directory
WORKDIR /app
# Copy package.json and package-lock.json to the working directory
COPY package.json tsconfig.json ./
# Install dependencies
RUN npm install --ignore-scripts
# Copy the TypeScript source files
COPY src/ ./src
# Compile TypeScript to JavaScript
RUN npx tsc
# Use a smaller Node.js image for the final build
FROM node:22-alpine AS release
# Set the working directory
WORKDIR /app
# Copy the compiled files and node_modules from the builder stage
COPY --from=builder /app/dist /app/dist
COPY --from=builder /app/node_modules /app/node_modules
COPY --from=builder /app/package.json /app/package.json
# Set environment variables required for the server
ENV NODE_ENV=production
# Expose any required ports (replace 3000 with the actual port if different)
EXPOSE 3000
# Run the server
ENTRYPOINT ["node", "dist/server.js"]