notion / Dockerfile
Gemini
fix: Update Notion MCP server port to 7861 in app.py
dede469
# Stage 1: The "Builder" Stage - Build the Node.js application
FROM node:20-slim AS builder
# Install git and ca-certificates to clone the repository securely
RUN apt-get update && apt-get install -y --no-install-recommends git ca-certificates && rm -rf /var/lib/apt/lists/*
# Set the working directory for cloning
WORKDIR /app
# Clone the notion-mcp-server repository
RUN git clone --branch fix-deployment-error https://github.com/JsonLord/notion-mcp-server.git notion-mcp-server
# Set the working directory for the Node.js project
WORKDIR /app/notion-mcp-server
# Use 'npm ci' for a clean, reliable installation of all dependencies
RUN npm ci
# Run the build script
RUN npm run build
# ==================== DEBUGGING STEP 1 ====================
# List the contents of the current directory to verify that the 'dist'
# directory was created by the build command.
RUN echo "--- Contents of /app/notion-mcp-server in builder stage (after build):" && ls -laR .
# ==========================================================
# Stage 2: The "Final" Stage - Create the Python application image
FROM python:3.9-slim
# Install nodejs, npm, and ca-certificates in the final image
# This is needed because the Python app runs the Node.js server as a subprocess
RUN apt-get update && apt-get install -y --no-install-recommends nodejs npm ca-certificates && rm -rf /var/lib/apt/lists/*
# Set the working directory for the Python application
WORKDIR /app
# Copy Python requirements and install them
COPY requirements.txt ./
RUN pip install --no-cache-dir -r requirements.txt
# Copy the app.py file
COPY app.py ./
# Crucially, copy the entire built notion-mcp-server directory from the "builder" stage
COPY --from=builder /app/notion-mcp-server /app/notion-mcp-server
# ==================== DEBUGGING STEP 2 ====================
# List the contents of the copied directory to verify that the 'dist'
# directory was successfully brought into the final image.
RUN echo "--- Contents of /app/notion-mcp-server in final stage (after copy):" && ls -laR /app/notion-mcp-server
# ==========================================================
# Expose the port
EXPOSE 7860
# Set the final CMD to run uvicorn
CMD ["uvicorn", "app:app", "--host", "0.0.0.0", "--port", "7860"]