# Generated by https://smithery.ai. See: https://smithery.ai/docs/config#dockerfile
# Use a Node.js base image for building the project
FROM node:22-alpine AS builder
# Set working directory
WORKDIR /app
# Copy package.json and package-lock.json
COPY package.json .
# Install dependencies, ignoring scripts to skip "prepare"
RUN npm install --ignore-scripts
# Copy the rest of the application code
COPY src ./src
COPY tsconfig.json .
# Build the project
RUN npm run build
# Use a smaller Node.js image for the runtime
FROM node:22-alpine AS release
# Set working directory
WORKDIR /app
# Copy the built files and node_modules from the builder stage
COPY --from=builder /app/dist ./dist
COPY --from=builder /app/package.json .
COPY --from=builder /app/package-lock.json .
# Install production dependencies
RUN npm ci --omit=dev
# Set the environment variable for the Todoist API token
ENV TODOIST_API_TOKEN=your_api_token_here
# Expose the port that the server listens to, if applicable
# EXPOSE <port-number>
# Command to run the server
ENTRYPOINT ["node", "dist/index.js"]